Full deployment history for this project.
⚡ Bolt: optimize fetchClobPricesForMarkets token batching Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
⚡ Bolt: Optimize fetchClobPricesForMarkets by batching token IDs Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
Merge pull request #21 from mbarbine/fix/reconcile-build-and-typescript-scripts-3023873677865163169
fix: reconcile build/deploy and resolve TypeScript script declaration error - Verified that all previously submitted PR changes (trace headers, JSON feed optimization, locale type checking, logger verification) are merged into main. - Fixed TypeScript redeclaration error in `scripts/indexnow.ts` by renaming imported `fetch` module to `fetchClient`. - Confirmed `pnpm run build`, `npx vitest run`, and `npx tsc --noEmit` pass with zero errors. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
Merge pull request #20 from mbarbine/code-health/verify-logger-removed-18393987725853388684
Merge pull request #19 from mbarbine/bolt/optimize-json-feed-html-string-generation-6753560486673715119
chore: verify lib/logger.ts console.error statement is removed
⚡ Bolt: optimize HTML string generation in JSON feed endpoint 💡 What: Optimized outcome HTML string generation in the JSON Feed route (app/api/feed/json/route.ts) by replacing .map().join("") with Array.prototype.reduce string accumulation. 🎯 Why: Combining .map() and .join("") creates an intermediate array of strings in memory for every market outcomes list rendered. Using .reduce() directly accumulates the string, avoiding intermediate array allocations and reducing garbage collection pressure. 📊 Measured Improvement: Across 10,000 benchmark iterations (50 outcomes per market): - map/join baseline: ~495ms - reduce optimization: ~442ms - Speed improvement: ~10.6% execution time reduction and elimination of intermediate array allocations.
🧹 Fix parameter string validation and remove `as any` casts in locale validation Refactor locale checking logic in `app/[locale]/layout.tsx` and `i18n/request.ts` to use string array inclusion check `(locales as readonly string[]).includes(...)` instead of unsafe `as any` type casting. Add unit tests verifying locale validation logic.
chore: add auto approve+merge workflow
Consolidate 2 open pull requests Merged consolidation of open PRs: #16, #15
feat: add platform contract fallback routes
feat: complete platform discovery and MCP contract
chore: reconcile and restore pnpm build
⚡ Bolt: Add passive flag to scroll event listener Added the `{ passive: true }` flag to the scroll event listener in `components/header.tsx` to improve scrolling performance and reduce jank. Also fixed a failing accessibility test in `ui-ux.test.tsx` and documented the learning in `.jules/bolt.md`.
⚡ Bolt: Replace setInterval with requestAnimationFrame in AnimatedCounter Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
⚡ Bolt: Optimize AnimatedCounter re-renders - Replace `useState` within `AnimatedCounter` with direct DOM mutation (`ref.current.textContent`) via `requestAnimationFrame`. - This avoids excessive React re-renders (60 re-renders per second per counter during animation). - Added a cleanup function on unmount to cancel the animation frame. - Add journal entry to `.jules/bolt.md` documenting this optimization pattern. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
🎨 Palette: Add keyboard accessibility to concept video thumbnail Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
🛡️ Sentinel: [CRITICAL] Fix information leakage in webhook logs - Removed webhook payload logging from `app/api/webhooks/n8n/route.ts` - Avoid echoing untrusted input back in NextResponse - Validated JSON payload without storing variable to pass linting - Added journal entry for learning about log leakage Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
🎨 Palette: Enhance Accessibility for Concept Video, Waitlist Form, and Mobile Header Menu - Added keyboard support (`role="button"`, `tabIndex={0}`, `onKeyDown`) to the concept video trailer thumbnail. - Enhanced waitlist form inputs with `required`, `aria-required="true"`, and visual indicator asterisks. - Added dynamic ARIA attributes (`aria-expanded`, `aria-label`, `aria-controls`) to the mobile header menu toggle. - Wrote tests to ensure logic works and is compliant via `tests/ui-ux.test.tsx`. - Updated `README.md` to reflect these features. - Created learning log in `.jules/palette.md`. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
🛡️ Sentinel: Add security headers to middleware Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
⚡ Bolt: Optimize scroll event listener in Header Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
⚡ Bolt: Improve animation and scroll performance - Replaced `setInterval` with `requestAnimationFrame` in `TechSpecsSection` for smoother, sync-to-refresh-rate counting animations. - Added `{ passive: true }` to the window scroll event listener in `Header` to prevent scroll jank. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
perf: use requestAnimationFrame in AnimatedCounter Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
Merge pull request #7 from mbarbine/fix-n8n-webhook-auth-13485756174384491758 🛡️ Sentinel: [CRITICAL] Fix missing authentication on n8n webhook
🛡️ Sentinel: [CRITICAL] Fix missing authentication on n8n webhook Added authorization check for incoming n8n webhook payloads to ensure only authorized clients can trigger automations. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
🛡️ Sentinel: [MEDIUM] Fix reverse tabnabbing vulnerability - Added `rel="noopener noreferrer"` to all `target="_blank"` links in `components/footer.tsx`. - Recorded learning in `.jules/sentinel.md`. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
🛡️ Sentinel: [MEDIUM] Fix reverse tabnabbing vulnerability - Added `rel="noopener noreferrer"` to all `target="_blank"` links in `components/footer.tsx`. - Recorded learning in `.jules/sentinel.md`. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
🛡️ Sentinel: [MEDIUM] Fix reverse tabnabbing vulnerability - Added `rel="noopener noreferrer"` to all `target="_blank"` links in `components/footer.tsx`. - Recorded learning in `.jules/sentinel.md`. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
⚡ Bolt: Extract CountdownTimer to prevent HeroSection re-renders Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
🎨 Palette: Add `aria-label` to language select elements - Added `aria-label="Select language"` to the desktop and mobile language selector `<select>` elements in `components/header.tsx` for improved screen reader accessibility. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
Merge pull request #2 from mbarbine/bolt/perf-hero-mousemove-3747807715138079915 ⚡ Bolt: Remove unused mousemove listener causing unnecessary re-renders in HeroSection
🛡️ Sentinel: Add security headers to middleware Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
⚡ Bolt: Remove unused mousemove listener causing unnecessary re-renders in HeroSection Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
feat: final SEO, Sitemap tree, and discoverability enhancements - Implemented a sitemap index at /sitemap.xml pointing to localized sub-sitemaps. - Added comprehensive robots.txt with specialized LLM/Bot crawler support. - Enhanced SEO with Geo tags, ICBM, and bot-id meta tag. - Added id="botid" to the body for specific platform identification. - Refactored .well-known/mcp.json for standard discovery. - Expanded llms.txt to match the PlatPhorm News network cadence. - Integrated Vercel Speed Insights alongside Analytics. - Improved i18n visibility with localized links in the Footer and Header. - Added OpenAPI spec discovery link at /api-spec.json. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
feat: final SEO, Sitemap tree, and discoverability enhancements - Implemented a sitemap index at /sitemap.xml pointing to localized sub-sitemaps. - Added comprehensive robots.txt with specialized LLM/Bot crawler support. - Enhanced SEO with Geo tags, ICBM, and bot-id meta tag. - Added id="botid" to the body for specific platform identification. - Refactored .well-known/mcp.json for standard discovery. - Expanded llms.txt to match the PlatPhorm News network cadence. - Integrated Vercel Speed Insights alongside Analytics. - Improved i18n visibility with localized links in the Footer and Header. - Added OpenAPI spec discovery link at /api-spec.json. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
feat: final SEO, Sitemap tree, and discoverability enhancements - Implemented a sitemap index at /sitemap.xml pointing to localized sub-sitemaps. - Added comprehensive robots.txt with specialized LLM/Bot crawler support. - Enhanced SEO with Geo tags, ICBM, and bot-id meta tag. - Added id="botid" to the body for specific platform identification. - Refactored .well-known/mcp.json for standard discovery. - Expanded llms.txt to match the PlatPhorm News network cadence. - Integrated Vercel Speed Insights alongside Analytics. - Improved i18n visibility with localized links in the Footer and Header. - Added OpenAPI spec discovery link at /api-spec.json. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
Merge pull request #1 from mbarbine/feat/sitemap-seo-cadence-overhaul-16348708892910189313 Comprehensive SEO, i18n, and API Overhaul