Full deployment history for this project.
Merge pull request #144 from mbarbine/bolt/parallelize-workflow-operations-4303386903136169957
Merge pull request #145 from mbarbine/palette/breadcrumbs-a11y-polish-5070657285460417846
๐จ Palette: Enhance Breadcrumbs accessibility & visual polish Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
โก Bolt: Parallelize workflow cross-posting and batch importing Parallelize sequential async operations in executeCrossPost and executeBatchImport in app/api/workflow/route.ts using Promise.all to eliminate request waterfalls. Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
Merge pull request #142 from mbarbine/palette/replace-job-badge-ascii-markers-7998004110439493827
Merge pull request #143 from mbarbine/bolt-optimize-emoji-shortcodes-4785535873301924650
โก Bolt: optimize parseEmojiShortcodes performance - Hoist SHORTCODE_MAP to module scope to eliminate per-call object allocations - Add early short-circuit check for strings lacking colons - Replace 60 split/join iterations with a single-pass regex replacement Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
๐จ Palette: Replace ASCII brackets in job badges with standard icons Replaces '[ Remote ]', '[ Hybrid ]', and '[ On-site ]' ASCII bracket markers in job card badges with clean Lucide icons (Globe, Building2, MapPin, Clock, Briefcase) and standard text labels. Icons include aria-hidden="true" to ensure clean screen reader output. Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
Merge pull request #140 from mbarbine/palette/replace-ascii-placeholders-10365744178507989448
Merge pull request #141 from mbarbine/bolt/optimize-markdown-inline-regex-17003564903514826157
Merge pull request #124 from mbarbine/sentinel/fix-ingest-auth-355431732434697185
Merge pull request #139 from mbarbine/palette/app-form-accessibility-12313553990669277669
Merge pull request #138 from mbarbine/bolt/submissions-promise-all-4927742986964392353
Merge pull request #136 from mbarbine/jules-18223720173100181866-c9c1f571
Merge pull request #137 from mbarbine/bolt/parallelize-document-queries-9400351695460991650
Merge pull request #134 from mbarbine/bolt-optimize-category-document-counts-14925819265765370858
Merge pull request #135 from mbarbine/palette/replace-job-text-placeholders-12017376520319651250
Merge pull request #131 from mbarbine/palette/locale-switcher-active-indicator-149563861521309071
Merge pull request #132 from mbarbine/bolt/module-scope-stopwords-7431942176941468207
Merge pull request #133 from mbarbine/sentinel/secure-settings-api-route-3641401916711783929
Merge pull request #119 from mbarbine/bolt/optimize-sitemap-deduplication-8435732186678244348
Merge pull request #121 from mbarbine/sentinel/ssrf-applications-public-url-3943499618729443247
Merge pull request #122 from mbarbine/jules-application-form-lucide-check-8462967954459420756
Merge pull request #123 from mbarbine/jules-7798116298339143946-b4de809e
Merge consolidate/all-prs: combines all 25 open PRs Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
Support local lab degraded RSS mode
Support local lab degraded RSS mode
Support local lab degraded RSS mode
๐งช [Testing] Add test for AccessibleThemeSwitcher
โก Bolt: Optimize search API with concurrent DB queries Replaced sequential database round-trips for fetching paginated results and the total count with a concurrent approach using `Promise.all`. This reduces the search request database latency by ~50% while preserving safe query planner execution paths (unlike window function approaches).
โก Bolt: [performance improvement] Batch SEO refresh database updates to resolve N+1 patterns
๐งช add error path test for catch block in sanitizeMarkdownUrl This commit adds a new test suite for `sanitizeMarkdownUrl` in `__tests__/lib/markdown.test.ts` and aligns the implementation with the task's rationale to ensure robust handling of relative and anchor links via the `catch` block fallback.
๐ก๏ธ Sentinel: [MEDIUM] Fix SSRF and Resource Exhaustion in Workflow API Implemented comprehensive security measures for external URL fetching in the workflow API: - Added `isSafeUrl` to block private/internal IP ranges and non-HTTP(S) protocols. - Implemented `securedFetch` with mandatory 10s timeouts. - Enforced 1MB response size limits using stream-based reading to prevent DOS. - Added in-memory rate limiting to the `/api/workflow` endpoint.
โก Bolt: resolve N+1 query in executeCrossPost ๐ก What: Optimized `executeCrossPost` by replacing a loop-based integration lookup with a single batch query using `ANY`. ๐ฏ Why: The previous implementation performed a database query for every target integration in a loop, leading to an N+1 query problem and increased latency. ๐ Impact: Significant reduction in database round-trips and total request latency, especially when cross-posting to multiple targets. ๐ฌ Measurement: Simulated benchmark with 10 targets and 50ms DB latency showed an improvement of ~90% (from 508ms to 51ms).
๐ก๏ธ Sentinel: [CRITICAL] Fix SSRF vulnerability in registration endpoint Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
๐ก๏ธ Sentinel: [CRITICAL/HIGH] Fix SSRF vulnerability in fetchUrlMetadata Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
๐ก๏ธ Sentinel: [CRITICAL/HIGH] Fix SSRF vulnerability in fetchUrlMetadata Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
feat: use deferred value for search filtering Uses `useDeferredValue` in the `NetworkShowcase` component to defer the computationally expensive array filtering as the user types, preventing the main thread from blocking. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
feat: add aria-label to toast close button Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
fix: Prevent SSRF in url validation This commit updates the `validateUrl` function in `app/api/v1/applications/route.ts` to actively block localhost, private IP addresses (including internal ranges), and common SSRF bypass vectors. This ensures that the server cannot be tricked into making requests to internal network resources when fetching URL metadata. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
โก Bolt: [performance improvement] Defer search query in NetworkShowcase Use React `useDeferredValue` for `searchQuery` in `NetworkShowcase` component to prevent UI thread blocking while filtering large network lists, keeping typing responsive. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
refactor: use semantic buttons for category filter badges Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
๐จ Palette: Improve accessibility in NetworkShowcase component - Replace interactive `Badge` (span) elements with semantic `<button>` elements for category filters. - Apply `badgeVariants` directly to buttons. - Add `aria-pressed` for screen readers to announce active filter state. - Add standard focus rings for keyboard navigation. - Add `aria-label="Search sites"` to the search input. - Add `aria-hidden="true"` to the decorative search icon. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>