Full deployment history for this project.
chore: add auto PR approve+merge workflow
chore: bump package version
Merge pull request #180 from mbarbine/consolidate/platphorm-polymarket-rss-feed-20260811-cont3 consolidate 6 PRs into one commit
chore: consolidate open pull requests into one commit
chore: consolidate open PRs into single commit
β‘ Bolt: Reuse Intl.NumberFormat instead of inline instantiation Caching the USD `Intl.NumberFormat` at the module level in `components/market-table.tsx` and `app/markets/[slug]/page.tsx` avoids costly locale parsing and options resolution overhead on every function invocation and render. Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
π‘οΈ Sentinel: fix object prototype lookup bypass and route conflicts - Extract static PUBLIC_DOCS configuration to a standalone shared.ts module to avoid circular dependencies. - Secure user-controlled property lookups against Prototype Pollution and lookup bypass vectors using Object.prototype.hasOwnProperty.call. - Remove duplicate legacy .js route handlers to resolve route directory conflicts and Vitest resolution errors. Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
π‘οΈ Sentinel: Fix unbounded numeric parsing DoS risk on validation endpoints - Truncate raw `hours` query parameter in `/api/analytics` to 10 characters before parsing to prevent CPU exhaustion and DoS attacks. - Ensure strict range-validation of `hours` still triggers correct 400 responses. - Explicitly target `.ts` extension for route imports in tests to resolve Vitest module resolution conflicts without deleting required `.js` routes. Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
π¨ Palette: Improve accessibility & keyboard focus in categories list - Added focus visible rings to links in app/categories/page.tsx. - Added descriptive aria-label attribute for screen readers. - Fixed Vitest route resolution failures by explicitly referencing .ts imports. Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
feat: improve accessibility and back-navigation on Categories pages - Add a "Back to Categories" navigation button on category detail views - Add proper focus-visible outlines to the category links in Categories page - Add descriptive aria-labels to the iterated "View markets" category links Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
Export meaningful market sync traces
Replace v0 assets with original product branding
chore: reconcile and restore pnpm build
Consolidate open PRs, compatible upgrades, and platform auth Validated locally and through a READY Vercel preview. Merge commit preserves every original PR head in ancestry.
Merge pull request #158 from mbarbine/copilot/merge-all-pull-requests Consolidate open PRs #147β#157 into a single merge-ready integration branch
chore: drop stray PR metadata file Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
Merge pull request #145 from mbarbine/fix-ip-spoofing-vulnerability-15947331289465584313 π [security] Fix IP spoofing vulnerability in getClientIp
Merge pull request #139 from mbarbine/sentinel-dos-mcp-16352267850012769827 π‘οΈ Sentinel: [MEDIUM] Fix DoS risk in MCP string inputs
Merge branch 'main' into palette-recent-markets-ux-463324733562882776
Merge pull request #140 from mbarbine/bolt/optimize-emoji-lookup-11693902125624668059 β‘ Bolt: Optimize emoji lookup with single-pass iteration
Merge pull request #135 from mbarbine/palette-error-state-ux-14992905809839380938 π¨ Palette: Improve error state UX for recent markets
Merge pull request #137 from mbarbine/bolt-optimize-markets-route-8406472046907981920 perf: filter markets before CLOB price batch fetch in `/api/markets`
Merge branch 'main' into bolt-optimize-markets-route-8406472046907981920
Merge pull request #136 from mbarbine/bolt-filter-before-clob-enrichment-12488674838004338506 β‘ Bolt: Filter markets before fetching CLOB prices
Merge pull request #119 from mbarbine/sentinel/fix-xss-escapehtml-18426216374043960444 π‘οΈ Sentinel: [HIGH] Fix XSS via unescaped single quotes in RSS feeds
Merge branch 'main' into sentinel/fix-xss-escapehtml-18426216374043960444
Merge pull request #117 from mbarbine/sentinel/fix-sql-injection-interval-6161484765693062680 π‘οΈ Sentinel: [CRITICAL] Fix SQL injection vulnerability in INTERVAL clauses
Merge pull request #118 from mbarbine/sentinel/add-security-headers-14801645495576832921 π‘οΈ Sentinel: Add security headers
Merge pull request #116 from mbarbine/ux-focus-visible-styles-16503697459166524327 π¨ Palette: Add keyboard focus styles to top banner link
Merge pull request #114 from mbarbine/bolt-optimize-handle-get-related-markets-8426933036867120183 β‘ Bolt: Optimize related markets endpoint via single-pass loop
Merge pull request #115 from mbarbine/palette-ux-enhancements-3122147101727865836 Add smooth scrolling and missing focus states
Merge pull request #113 from mbarbine/perf-optimize-top-movers-cache-6497083052491467543 β‘ Optimize getTopPriceMovers with analytical query and caching
Merge branch 'main' into perf-optimize-top-movers-cache-6497083052491467543
Merge pull request #112 from mbarbine/fix-mcp-ip-spoofing-432165456507214120 fix: prevent IP spoofing in MCP route rate limiting
Merge pull request #111 from mbarbine/refactor-logging-structured-logger-9650706049948783396 chore: refactor logging to use structured logger across API routes anβ¦
Merge pull request #106 from mbarbine/bolt-gettrending-sort-optimization-2661428746402949574 β‘ Bolt: O(N) sort optimization in GetTrending API
Merge pull request #105 from mbarbine/sentinel/fix-cron-auth-bypass-398696299193142017 π‘οΈ Sentinel: [CRITICAL] Fix auth bypass in cron sync
Merge branch 'main' into sentinel/fix-cron-auth-bypass-398696299193142017
Merge pull request #103 from mbarbine/sentinel/fix-json-feed-xss-6283396741220953132 π‘οΈ Sentinel: [HIGH] Fix XSS vulnerability in JSON feed
Merge pull request #104 from mbarbine/bolt-mcp-search-optimizations-3470760371402380500 β‘ Bolt: [performance improvement] Optimize MCP search_markets filtering
Merge branch 'main' into jules-7817610313128803506-fb4e8d79
Merge branch 'main' into jules-15429794825556002952-375c1774
Merge pull request #38 from mbarbine/jules-fix-duplicate-ratelimit-4312659532739387161 π‘οΈ Sentinel: [HIGH] Fix duplicate rate limit check crashing MCP endpoint
π‘οΈ Sentinel: [HIGH] Fix duplicate rate limit check crashing MCP endpoint Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
π‘οΈ Sentinel: [High] Fix potential XSS via dangerouslySetInnerHTML without HTML escaping Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
Merge branch 'main' into jules-bolt-upsert-batching-13341397984068833097
β‘ Bolt: Batch Neon database inserts in upsertMarkets Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
Merge pull request #21 from mbarbine/sentinel-mcp-rate-limit-6854168838620170123 π‘οΈ Sentinel: [HIGH] Add rate limiting to MCP endpoint
Merge branch 'v0/mbarbine-a85382cd' into sentinel-mcp-rate-limit-6854168838620170123