96a1f1683a
feat: surface published assets for versions
2026-04-04 11:43:31 +02:00
d126315fa5
docs: rewrite readme for resume branches
2026-04-04 11:36:15 +02:00
c9914191d8
feat: allow updating existing CV branches
2026-04-04 11:29:46 +02:00
15d5ef6ac6
fix: cascade public assets on version deletion
2026-04-04 11:25:50 +02:00
95c81955c9
fix: remove public assets before deleting branch
2026-04-04 11:23:48 +02:00
3b490dedfc
fix: pass API_BASE_URL into web build
2026-04-04 11:21:49 +02:00
8e74f85178
fix: include reportlab in backend requirements
2026-04-04 11:16:41 +02:00
Daniel Alves Rösel
700ff5ee0d
Merge pull request #6 from velocitatem/claude/fix-document-loading-backend-PVFi6
...
Fix document loading: circular FK, patch validation 500, and token expiry redirect
2026-04-04 11:49:05 +04:00
Claude
bdf9b25544
chore: ignore *.db files (local SQLite test databases)
...
https://claude.ai/code/session_01KKbzWYz8fLyG2qcwiDZ8fy
2026-04-04 07:43:32 +00:00
Claude
1b11cdf25c
Fix document loading: circular FK, patch validation 500, and token expiry redirect
...
- documents.py: fix root_version_id never being saved due to SQLAlchemy
deferring the circular FK (CvDocument↔CvVersion). Use flush-based approach:
flush doc, flush version, then set root_version_id before final commit.
- config.py: add validator to coerce empty MINIO_ENDPOINT string to None,
preventing boto3 ValueError: Invalid endpoint at startup.
- versions.py: catch PatchValidationError and return 422 instead of 500
when a patch violates ATS guard rules.
- api.ts: on 401, clear stale OIDC cookies and redirect to /login instead
of showing the "Failed to load documents" error.
https://claude.ai/code/session_01KKbzWYz8fLyG2qcwiDZ8fy
2026-04-04 07:43:00 +00:00
Daniel Alves Rösel
1a261be792
Merge pull request #5 from velocitatem/copilot/fix-404-page-sidebar-issue
...
fix: "404 page not found" in dashboard sidebar after login
2026-04-04 10:48:26 +04:00
copilot-swe-agent[bot]
0b38f9f703
fix: correct default API_BASE_URL and improve sidebar error message
...
Agent-Logs-Url: https://github.com/velocitatem/cvfs/sessions/1a9aa3e0-c4e1-48fb-b646-49f31c316325
Co-authored-by: velocitatem <60182044+velocitatem@users.noreply.github.com >
2026-04-04 06:35:18 +00:00
copilot-swe-agent[bot]
8bc501fa85
Initial plan
2026-04-04 06:19:11 +00:00
Daniel Alves Rösel
b18ad7712c
Merge pull request #4 from velocitatem/copilot/add-pdf-rendering-and-analytics
...
feat: CV share analytics + PDF rendering for public links
2026-04-04 10:05:35 +04:00
copilot-swe-agent[bot]
ad91369371
fix: address code review - use timezone-aware datetime, full ip hash
...
Agent-Logs-Url: https://github.com/velocitatem/cvfs/sessions/fb35fb9a-a89e-4df0-9584-109f7151509c
Co-authored-by: velocitatem <60182044+velocitatem@users.noreply.github.com >
2026-04-04 06:02:24 +00:00
copilot-swe-agent[bot]
7435a0f1bf
feat: add CV view analytics and PDF rendering for public share links
...
Agent-Logs-Url: https://github.com/velocitatem/cvfs/sessions/fb35fb9a-a89e-4df0-9584-109f7151509c
Co-authored-by: velocitatem <60182044+velocitatem@users.noreply.github.com >
2026-04-04 05:59:05 +00:00
copilot-swe-agent[bot]
b63417b8b3
Initial plan
2026-04-04 05:50:23 +00:00
66bf016747
verify tokens using full jwks and relaxed options
2026-04-03 19:51:48 +02:00
dfc3764bcc
normalize discovery issuer path
2026-04-03 19:45:20 +02:00
b5053c5536
strip authorize suffix from issuer
2026-04-03 19:37:49 +02:00
d2ad0c3fdd
use raw issuer for discovery
2026-04-03 19:36:22 +02:00
effb9161f8
use kid-specific jwk for verification
2026-04-03 19:33:56 +02:00
fa215009cd
allow jwt alg from token header
2026-04-03 19:31:23 +02:00
e7bac3b178
discover jwks uri from oidc configuration
2026-04-03 19:28:03 +02:00
ba0612efb8
parse authentik issuer path correctly
2026-04-03 19:24:54 +02:00
7e5f2bb06a
fix authentik issuer normalization
2026-04-03 19:22:51 +02:00
5a8e8f1572
force authentik issuer base
2026-04-03 19:21:13 +02:00
9f90b000e2
normalize oidc issuer for authentik
2026-04-03 19:18:27 +02:00
dce592c086
redirect using public base url
2026-04-03 19:15:37 +02:00
531c27b669
use authentik host for authorize urls
2026-04-03 19:13:28 +02:00
81165ca9db
normalize authentik issuer paths
2026-04-03 19:04:43 +02:00
3f6b9a4f81
propagate authentik env into web build
2026-04-03 19:01:17 +02:00
dcfe207389
wire authentik env vars in compose
2026-04-03 18:47:42 +02:00
5ccae82cfd
load env file for compose services
2026-04-03 18:45:32 +02:00
af7a9cb63f
fix cascade delete on cv versions
2026-04-03 18:28:54 +02:00
Daniel Alves Rösel
d6e5e563f1
Merge pull request #3 from velocitatem/copilot/add-delete-buttons-and-fix-header
...
Rename to cvfs, remove dashboard heading, add branch delete buttons
2026-04-03 19:17:40 +04:00
copilot-swe-agent[bot]
77d454cf09
rename to cvfs, remove dashboard heading, add branch delete buttons
...
Agent-Logs-Url: https://github.com/velocitatem/cvfs/sessions/2bd56e04-d1e0-4e38-93b6-a99afc1d2b3c
Co-authored-by: velocitatem <60182044+velocitatem@users.noreply.github.com >
2026-04-03 15:08:05 +00:00
copilot-swe-agent[bot]
7543402c83
Initial plan
2026-04-03 15:03:54 +00:00
Daniel Alves Rösel
83b609f815
Merge pull request #2 from velocitatem/copilot/add-mobile-support-and-deleting-functions
...
Add mobile support, CV/branch deletion, and fix DOCX export to include patches
2026-04-03 18:54:47 +04:00
copilot-swe-agent[bot]
5d815cd24d
feat: add mobile support, delete CV/branch, and fix DOCX export with patches
...
Agent-Logs-Url: https://github.com/velocitatem/cvfs/sessions/4d754ed6-7f63-44e0-8689-123d7a70595f
Co-authored-by: velocitatem <60182044+velocitatem@users.noreply.github.com >
2026-04-03 14:45:54 +00:00
copilot-swe-agent[bot]
300a577fbe
Initial plan
2026-04-03 14:31:39 +00:00
Daniel Alves Rösel
2002a78509
Merge pull request #1 from velocitatem/claude/cv-branching-dashboard-XGi60
...
fix(webapp): use Web Crypto API in middleware and drop node: prefix in auth route
2026-04-03 18:09:34 +04:00
Claude
8d72dfa09d
fix(webapp): use Web Crypto API in middleware and drop node: prefix in auth route
...
Middleware runs in Edge Runtime (no Node.js built-ins), so use
globalThis.crypto.subtle for HMAC verification. Route handler uses
`import { createHmac } from 'crypto'` without the node: prefix
which webpack cannot resolve during Next.js build.
https://claude.ai/code/session_01CdisLhbC2kVt2hxfJ7TNPf
2026-04-03 13:59:09 +00:00
Daniel Alves Rösel
684936ab72
Add AI-powered CV tailoring, submissions tracking, and auth overhaul
2026-04-03 17:57:28 +04:00
Claude
01f34915f6
feat(dashboard): complete CV branching dashboard with auth and full editing workflow
...
- Visual branch heritage tree with colored dots and connecting lines, depth-aware expand/collapse
- Dashboard 3-tab layout: Content (inline block editing + patch staging), Patches (diff view), Submissions (AI suggestions)
- Inline block editing: click to edit any CV block, stage edits, save as named branch with pre-filled patches
- Submissions tab: create applications, request AI tailoring suggestions, accept/reject per suggestion
- Simple hardcoded login (username/password via env vars LOGIN_USER/LOGIN_PASS, defaults admin/admin)
- Authentik OIDC integration: authorize redirect + callback exchange, configurable via NEXT_PUBLIC_AUTHENTIK_*
- Middleware protecting /dashboard with session cookie verification (HMAC-SHA256)
- Auth API routes: /api/auth/login, /api/auth/logout, /api/auth/callback, /api/auth/token
- Backend: GET/PATCH submission routes for listing submissions and accepting/rejecting AI suggestions
- API client: OIDC bearer token forwarding from client-readable cookie
https://claude.ai/code/session_01CdisLhbC2kVt2hxfJ7TNPf
2026-04-03 13:45:51 +00:00
9a8add0bcd
feat(webapp): add public CV viewer redirect route
2026-04-02 21:11:54 +02:00
abf424779d
fix(db): ensure patches are eager-loaded when creating a new branch
2026-04-02 21:06:45 +02:00
3ebe9d3fb8
fix(db): resolve ambiguous foreign key relationships in join queries
2026-04-02 21:04:24 +02:00
1ff7c5b23a
fix(db): specify ON conditions in publication queries to avoid ambiguous foreign keys
2026-04-02 20:57:07 +02:00
0d1020e503
fix(db): ensure versions and patches are loaded when returning created document
2026-04-02 20:55:59 +02:00