{"items":[{"id":"d8a51221-f74f-446b-8e8e-5259ef32b4b5","type":"push","org":"subh05sus","repo":"gptmarlon-admin","title":"Refined PDF layout strategy with @page margins and sheet wrappers","summary":"Implemented a more robust PDF generation layout by setting @page margins to zero to eliminate unwanted whitespace leaks. Content is now contained within a .sheet wrapper utilizing padding and box-decoration-break: clone to ensure consistent margins across fragmented pages. This approach provides better control over multi-page print layouts while maintaining the required visual styling. ![CSS layout frustration](https://enxegfybrygakxrhnabg.supabase.co/storage/v1/object/public/meme-images/34e0f445-1d9f-4963-8eff-ea07efd5ec00.jpg)","url":"https://nomit.dev/subh05sus/gptmarlon-admin/status/8490b240703c8877f4037b1c217a25b5f093007f2161d4e607bb4bb36c723fcd","author":"subh05sus","contributors":["subh05sus"],"updated_at":"2026-09-08T06:22:40+00:00"},{"id":"df7fb69a-b1bc-409b-aeba-01fc0ca77bf7","type":"push","org":"subh05sus","repo":"gptmarlon-admin","title":"Resolved stale PDF layouts by updating cache control headers","summary":"We removed the aggressive s-maxage cache from our PDF generation route, which was causing stale guide layouts to persist in Vercel's CDN for up to 24 hours. By updating to max-age=60 and restricting caching to the browser, we ensure that every request fetches the latest template from storage. We also bumped the TEMPLATE_REV to clear out any remaining cached artifacts, ensuring consistent rendering across all guides. ![Caching is hard](https://enxegfybrygakxrhnabg.supabase.co/storage/v1/object/public/meme-images/68988896-19e3-4596-babc-ca594eef0119.jpg)","url":"https://nomit.dev/subh05sus/gptmarlon-admin/status/5f8c9fd480dc86594ecebffe635f87fff68a094abeab4a91e601fbfc92fa2cd4","author":"subh05sus","contributors":["subh05sus"],"updated_at":"2026-09-08T06:19:23+00:00"},{"id":"0310ad51-0a71-40f4-9345-a0aab25fb603","type":"push","org":"subh05sus","repo":"gptmarlon-admin","title":"Fix callout rendering in PDF generation to correctly distinguish warning boxes","summary":"The PDF generation logic was incorrectly mapping all non-tip callout types to the 'warning' class, resulting in incorrect red styling for informational boxes like requirements and disclaimers. I introduced a refined calloutClass() function that specifically isolates 'warning' callouts for red styling, while defaulting others to a neutral ink-bar design. This ensures that only true warnings stand out visually in the generated documents. ![Fixing the styling](https://enxegfybrygakxrhnabg.supabase.co/storage/v1/object/public/meme-images/9219507f-465d-413d-b3df-26ea8bb42fd1.jpg)","url":"https://nomit.dev/subh05sus/gptmarlon-admin/status/cf1710cc2ec45a80eb36aefd2239c6317f738ace188cf7c942b6c10e135d421b","author":"subh05sus","contributors":["subh05sus"],"updated_at":"2026-09-08T06:02:52+00:00"},{"id":"11344af9-2682-49d8-89bf-5789f55de691","type":"push","org":"subh05sus","repo":"gptmarlon-admin","title":"Improved PDF cache invalidation by adding a template revision key","summary":"The PDF cache was previously only keyed by guide version, causing issues where redesigned templates would not force a re-render for existing content. I have added a `TEMPLATE_REV` constant to the cache key in `lib/pdf-storage.ts`, which can be manually bumped when the PDF design changes to ensure users receive the latest rendered version. ![Drakeposting](https://enxegfybrygakxrhnabg.supabase.co/storage/v1/object/public/meme-images/subh05sus/gptmarlon-admin/drake/58afd03b-0718-43aa-abcd-86eeb54c9998.png)","url":"https://nomit.dev/subh05sus/gptmarlon-admin/status/08342450e62cc1b068384b2c2fccd55fc29513cc7fe552dfeb6b310ef5008b6e","author":"subh05sus","contributors":["subh05sus"],"updated_at":"2026-09-08T05:54:33+00:00"},{"id":"c5c0c1a3-be28-4efe-91e3-cb85d40ffd0f","type":"push","org":"subh05sus","repo":"gptmarlon-admin","title":"Bundled @sparticuz/chromium to resolve Vercel deployment issues","summary":"The on-demand PDF generation routes were failing on Vercel because the runtime environment could not locate the browser binary packed by @sparticuz/chromium. Since the package's internal path resolution wasn't detectable by @vercel/nft, we've updated next.config.ts to explicitly include the package in the output file tracing. This ensures the necessary binary is correctly bundled and available at runtime. ![Successful Deployment](https://enxegfybrygakxrhnabg.supabase.co/storage/v1/object/public/meme-images/faf3613b-d8e5-4b05-9412-641d87618ae4.jpg)","url":"https://nomit.dev/subh05sus/gptmarlon-admin/status/5acfd338e1d4348caff7d8506ff870b4fc7f797c6c92bddecd9de432c5da5102","author":"subh05sus","contributors":["subh05sus"],"updated_at":"2026-09-08T05:46:24+00:00"}],"pagination":{"offset":0,"limit":5,"has_more":true}}