Damjan Savic and GitHub
154aa94a89
Merge pull request #17 from damjan1996/auto-claude/014-implement-server-side-route-protection-for-dashboa
...
auto-claude: 014-implement-server-side-route-protection-for-dashboa
2026-01-25 19:49:13 +01:00
damjan_savic
757e0c543c
Merge origin/master
2026-01-25 19:47:08 +01:00
Damjan Savic and GitHub
9211a7e162
Merge pull request #27 from damjan1996/auto-claude/003-add-blog-search-and-category-filter
...
auto-claude: 003-add-blog-search-and-category-filter
2026-01-25 19:46:47 +01:00
Damjan Savic and GitHub
47d28f950a
Merge pull request #25 from damjan1996/auto-claude/006-add-portfolio-category-filter
...
auto-claude: 006-add-portfolio-category-filter
2026-01-25 19:46:40 +01:00
Damjan Savic and GitHub
210b79a18b
Merge pull request #14 from damjan1996/auto-claude/018-add-jsdoc-documentation-to-utility-modules-and-cus
...
auto-claude: 018-add-jsdoc-documentation-to-utility-modules-and-cus
2026-01-25 19:46:32 +01:00
damjan_savic
6eb08c9bde
Merge origin/master
2026-01-25 19:46:22 +01:00
damjan_savic
b069b1e981
Merge origin/master
2026-01-25 19:45:53 +01:00
damjan_savic
d824a8c2e0
Merge origin/master
2026-01-25 19:45:16 +01:00
Damjan Savic and GitHub
1b23003f04
Merge pull request #21 from damjan1996/auto-claude/007-add-cache-size-limit-with-lru-eviction
...
auto-claude: 007-add-cache-size-limit-with-lru-eviction
2026-01-25 19:44:52 +01:00
Damjan Savic and GitHub
fd90485548
Merge pull request #20 from damjan1996/auto-claude/011-languageswitcher-arrow-key-navigation
...
auto-claude: 011-languageswitcher-arrow-key-navigation
2026-01-25 19:44:48 +01:00
Damjan Savic and GitHub
86196831e3
Merge pull request #18 from damjan1996/auto-claude/009-navlink-focus-state-for-keyboard-accessibility
...
auto-claude: 009-navlink-focus-state-for-keyboard-accessibility
2026-01-25 19:44:44 +01:00
Damjan Savic and GitHub
065d52627b
Merge pull request #16 from damjan1996/auto-claude/013-add-missing-critical-security-headers-csp-hsts-per
...
auto-claude: 013-add-missing-critical-security-headers-csp-hsts-per
2026-01-25 19:44:35 +01:00
Damjan Savic and GitHub
5dc83186fd
Merge pull request #15 from damjan1996/auto-claude/012-contact-form-message-character-counter
...
auto-claude: 012-contact-form-message-character-counter
2026-01-25 19:44:31 +01:00
damjan_savic
ffd85a1352
Merge origin/master
2026-01-25 19:44:20 +01:00
damjan_savic
69f244b219
Merge origin/master
2026-01-25 19:43:51 +01:00
damjan_savic
c41f4ae9f9
Merge origin/master
2026-01-25 19:43:39 +01:00
damjan_savic
5669c89995
Merge origin/master
2026-01-25 19:42:54 +01:00
damjan_savic
e41e067715
Merge origin/master
2026-01-25 19:42:22 +01:00
damjan_savic
eae1ae6844
Merge origin/master
2026-01-25 19:42:00 +01:00
Damjan Savic and GitHub
061add06aa
Merge pull request #9 from damjan1996/auto-claude/019-fix-readme-inaccuracies-and-add-missing-setup-docu
...
auto-claude: 019-fix-readme-inaccuracies-and-add-missing-setup-docu
2026-01-25 19:41:22 +01:00
damjan_savic
a728289228
Merge origin/master
2026-01-25 19:41:04 +01:00
Damjan Savic and GitHub
316861c345
Merge pull request #13 from damjan1996/auto-claude/017-replace-in-memory-rate-limiter-with-persistent-sol
...
auto-claude: 017-replace-in-memory-rate-limiter-with-persistent-sol
2026-01-25 19:40:27 +01:00
damjan_savic
7324a87385
Merge origin/master
2026-01-25 19:39:57 +01:00
damjan_savic
b3f2105066
Merge origin/master
2026-01-25 19:39:43 +01:00
damjan_savic
28c9c356a0
Merge origin/master
2026-01-25 19:39:17 +01:00
Damjan Savic and GitHub
ece3b8eb03
Merge pull request #8 from damjan1996/auto-claude/024-add-memoization-to-animated-list-components
...
auto-claude: 024-add-memoization-to-animated-list-components
2026-01-25 19:38:45 +01:00
Damjan Savic and GitHub
ffc22b3709
Merge pull request #7 from damjan1996/auto-claude/023-optimize-floatingpaths-component-reduce-36-animate
...
auto-claude: 023-optimize-floatingpaths-component-reduce-36-animate
2026-01-25 19:38:43 +01:00
Damjan Savic and GitHub
4ea3325cc5
Merge pull request #6 from damjan1996/auto-claude/027-optimize-image-loading-strategy-for-blog-and-portf
...
auto-claude: 027-optimize-image-loading-strategy-for-blog-and-portf
2026-01-25 19:38:40 +01:00
damjan_savic
c72fa8fb9f
Merge origin/master
2026-01-25 19:38:30 +01:00
damjan_savic
ad74da5dbc
Merge origin/master
2026-01-25 19:38:04 +01:00
damjan_savic
5efdc625a1
Merge origin/master
2026-01-25 19:37:36 +01:00
Damjan Savic and GitHub
e182bf68b9
Merge pull request #5 from damjan1996/auto-claude/026-pause-background-animations-when-not-visible
...
auto-claude: 026-pause-background-animations-when-not-visible
2026-01-25 19:37:09 +01:00
damjan_savic
7272a17296
Merge origin/master
2026-01-25 19:37:01 +01:00
Damjan Savic and GitHub
992c9d1a17
Merge pull request #2 from damjan1996/auto-claude/029-remove-dead-code-components-vite-and-pages-vite-fo
...
auto-claude: 029-remove-dead-code-components-vite-and-pages-vite-fo
2026-01-25 19:31:59 +01:00
damjan_savic
d3b79705c4
Merge origin/master and resolve conflicts
2026-01-25 19:31:32 +01:00
Damjan Savic and GitHub
e33bcd21c9
Merge pull request #1 from damjan1996/auto-claude/032-split-large-jsonld-tsx-component-759-lines-into-se
...
auto-claude: 032-split-large-jsonld-tsx-component-759-lines-into-se
2026-01-25 19:31:06 +01:00
damjan_savic
d28873d97d
Merge origin/master and resolve conflicts
2026-01-25 19:30:43 +01:00
Damjan Savic and GitHub
26c150352a
Merge pull request #11 from damjan1996/auto-claude/021-document-the-scripts-directory-utilities-for-devel
...
auto-claude: 021-document-the-scripts-directory-utilities-for-devel
2026-01-25 19:27:16 +01:00
Damjan Savic and GitHub
e1670b9529
Merge pull request #31 from damjan1996/auto-claude/022-add-contributing-md-with-development-setup-and-cod
...
auto-claude: 022-add-contributing-md-with-development-setup-and-cod
2026-01-25 19:26:41 +01:00
Damjan Savic and GitHub
7ff091b358
Merge pull request #23 from damjan1996/auto-claude/004-add-uselocalstorage-custom-hook
...
auto-claude: 004-add-uselocalstorage-custom-hook
2026-01-25 19:26:29 +01:00
Damjan Savic and GitHub
2cef161a18
Merge pull request #22 from damjan1996/auto-claude/008-404-page-internationalization-and-design-consisten
...
auto-claude: 008-404-page-internationalization-and-design-consisten
2026-01-25 19:26:26 +01:00
Damjan Savic and GitHub
847729b31c
Merge pull request #19 from damjan1996/auto-claude/010-skills-section-skeleton-loading-animation
...
auto-claude: 010-skills-section-skeleton-loading-animation
2026-01-25 19:26:21 +01:00
Damjan Savic and GitHub
14e686c595
Merge pull request #12 from damjan1996/auto-claude/016-fix-client-side-csrf-token-implementation
...
auto-claude: 016-fix-client-side-csrf-token-implementation
2026-01-25 19:26:10 +01:00
Damjan Savic and GitHub
76dbb68471
Merge pull request #10 from damjan1996/auto-claude/020-document-the-internationalization-i18n-system-and-
...
auto-claude: 020-document-the-internationalization-i18n-system-and-
2026-01-25 19:26:07 +01:00
Damjan Savic and GitHub
187a42cbd8
Merge pull request #4 from damjan1996/auto-claude/025-implement-blog-post-caching-and-lazy-loading
...
auto-claude: 025-implement-blog-post-caching-and-lazy-loading
2026-01-25 19:25:21 +01:00
Damjan Savic and GitHub
6affc0d40c
Merge pull request #3 from damjan1996/auto-claude/030-add-unit-tests-vitest-configured-but-no-tests-exis
...
auto-claude: 030-add-unit-tests-vitest-configured-but-no-tests-exis
2026-01-25 19:25:14 +01:00
damjan_savic and Claude Sonnet 4.5
a2b919c6ca
fix: implement @next-safe/middleware for CSP (qa-requested)
...
- Refactor src/middleware.ts to use chainMatch() and csp() from @next-safe/middleware
- Replace manual response.headers.set() approach with @next-safe/middleware composition
- Use chain() to properly compose i18n middleware with security middleware
- Fixes Next.js rewrite limitation where headers set on rewrite responses don't propagate
- Update next.config.ts comment to reflect correct CSP implementation
Implements QA Session 2 fix request (previously not implemented correctly).
Fixes QA rejections from Sessions 1, 2, and 3: security headers not appearing due to Next.js rewrite edge case (GitHub Issue #70515 ).
Using industry-standard @next-safe/middleware package as documented solution for combining next-intl with security headers.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-01-25 13:24:50 +01:00
damjan_savic and Claude Sonnet 4.5
188b4d78ae
docs: QA Fix Session 2 completion summary
...
- Documented rate limiter fail-open bug fix
- Provided manual steps for database migration
- Outlined server restart procedure
- Expected outcome: QA approval after manual steps
QA Fix Session: 2
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-01-25 13:11:14 +01:00
damjan_savic and Claude Sonnet 4.5
281627beda
fix: Rate limiter fail-open bug - wrap createClient in try/catch (qa-requested)
...
Fixes:
- Rate limiter now properly fails open when Supabase unavailable
- Moved createClient() calls inside try/catch blocks
- Prevents unhandled exceptions from reaching API handler
- Improved error logging for debugging
Impact:
- isRateLimited() - Wrapped createClient (line 22)
- getRemainingAttempts() - Wrapped createClient (line 93)
- getTimeToReset() - Wrapped createClient (line 128)
Context:
- QA Session 2 found API returning 500 errors
- Root cause: Database table doesn't exist (requires manual migration)
- This fix ensures rate limiter fails gracefully when DB unavailable
- With DB present, rate limiting will work as designed
Verified:
- TypeScript compiles without errors
- Code follows fail-open pattern
- Error logging improved
QA Fix Session: 2
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-01-25 13:09:40 +01:00
damjan_savic and Claude Sonnet 4.5
4ab5f2ddfe
fix: add @next-safe/middleware and restore static headers (qa-requested - partial)
...
- Install @next-safe/middleware v0.10.0 package (latest available version)
- Add HSTS, Referrer-Policy, and Permissions-Policy back to next.config.ts
- These static headers work in next.config.ts, CSP remains in middleware
ISSUE ENCOUNTERED:
- QA requested @next-safe/middleware v0.13.2 but only v0.10.0 exists in npm registry
- Package was manually extracted to node_modules due to installation issues
- Attempting to use chainMatch/csp from package causes 500 server errors
- Root cause unclear - may be Next.js 15.1 compatibility issue or package API changes
CURRENT STATE:
- Security headers (HSTS, Referrer-Policy, Permissions-Policy) in next.config.ts
- CSP header in middleware.ts using response.headers.set() (Fix Session 1 approach)
- Headers still won't appear due to Next.js rewrite bug (as QA Session 2 identified)
Package installation attempted in both worktree and main project directories.
Manual extraction from npm registry tarball successful but usage causes errors.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com >
2026-01-25 13:03:32 +01:00