This website requires JavaScript.
02ca56358d
🔒 fix(ci): add tofu_module_reader SSH key to vault.yaml secrets (mirrors erp pattern) (#100 )
main
Gabriel Radureau
2026-05-06 14:04:09 +02:00
3fee1e9ed7
✨ feat(deploy): iac/ Vault provisioning + workflow (uses app_roles module from tools) (#99 )
Gabriel Radureau
2026-05-06 13:20:26 +02:00
3be6a2b7ef
🔒 fix(deploy): use websecure entrypoint + letsencrypt TLS for .lab ingress (#98 )
Gabriel Radureau
2026-05-06 08:14:55 +02:00
03a47396c5
✨ feat(deploy): chart Vault CRDs gated by vault.enabled (default false) (#97 )
Gabriel Radureau
2026-05-06 07:14:40 +02:00
8b1485e143
✨ feat(deploy): chart Vault CRDs gated by vault.enabled (default false)
vibe/batch-pr-chartv-vault-crds
Gabriel Radureau
2026-05-06 07:13:37 +02:00
a26cc96239
📝 docs: 2026-05-06 autonomous morning session recap (#96 )
Gabriel Radureau
2026-05-06 07:11:53 +02:00
2a6ad23523
📝 docs(changelog): record PRs #87-94 (2026-05-06 morning batch) (#95 )
Gabriel Radureau
2026-05-06 07:09:14 +02:00
849383d6c8
🤖 ci(docker): auto-build on push to main + fix root Dockerfile swag step (#94 )
Gabriel Radureau
2026-05-06 07:06:09 +02:00
63b892b10f
Merge pull request '📝 docs: refresh AGENTS.md + README.md (auth endpoints + ADR pointer + new packages)' (#93 ) from vibe/batch-pr-docs1-refresh-agents-readme into main
arcodange
2026-05-06 07:03:44 +02:00
886cbab36d
📝 docs: refresh AGENTS.md + README.md (auth endpoints + ADR pointer + new packages)
Gabriel Radureau
2026-05-06 07:03:15 +02:00
a385765030
Merge pull request '🧪 test(server): unit tests for AuthMiddleware Optional/Required handlers' (#92 ) from vibe/batch-pr-t1-middleware-tests into main
arcodange
2026-05-06 06:58:46 +02:00
ab4918adfc
🧪 test(server): unit tests for AuthMiddleware Optional/Required handlers
Gabriel Radureau
2026-05-06 06:58:25 +02:00
17de45563d
♻️ refactor(server): split AuthMiddleware into Optional/Required (RFC 6750 + ISP narrow interface)
Gabriel Radureau
2026-05-06 06:56:02 +02:00
e5a1979b1f
Merge pull request '♻️ refactor(auth): move UserContextKey from pkg/greet to pkg/auth' (#90 ) from vibe/batch-pr-d1-move-user-context-key into main
arcodange
2026-05-06 06:54:36 +02:00
92e53a6801
♻️ refactor(auth): move UserContextKey from pkg/greet to pkg/auth
Gabriel Radureau
2026-05-06 06:54:14 +02:00
f74ba51d7a
✨ feat(deploy): Dockerfile + Helm chart for k3s homelab deployment (#89 )
Gabriel Radureau
2026-05-06 06:51:14 +02:00
02bafbb0e2
🔒 fix(security): redact JWT tokens and HMAC secrets in trace logs (auth_service.go) (#88 )
Gabriel Radureau
2026-05-06 06:43:30 +02:00
1aef136436
📝 docs: cherry-pick 6 focused guides from PR #17 (option c) (#87 )
Gabriel Radureau
2026-05-06 06:37:17 +02:00
da51883c88
Merge pull request '📝 docs(changelog): record PR #85 ' (#86 ) from vibe/batch18-task-changelog-85 into main
arcodange
2026-05-05 22:52:40 +02:00
904bbe41f5
📝 docs(changelog): record PR #85
Gabriel Radureau
2026-05-05 22:52:25 +02:00
b9dd23a64f
Merge pull request '📝 docs: STATUS.md project snapshot 2026-05-05' (#85 ) from vibe/batch17-task-status-snapshot into main
arcodange
2026-05-05 22:50:55 +02:00
af9518fcce
📝 docs: STATUS.md project snapshot 2026-05-05
Gabriel Radureau
2026-05-05 22:50:41 +02:00
620f68df51
📝 docs(changelog): record PR #83 (#84 )
Gabriel Radureau
2026-05-05 22:48:33 +02:00
14478ed338
Merge pull request '📝 docs(readme): link to Mistral autonomous pattern doc' (#83 ) from vibe/batch15-task-readme-pattern-link into main
arcodange
2026-05-05 22:46:37 +02:00
1f4529f710
📝 docs(readme): link to Mistral autonomous pattern doc
Gabriel Radureau
2026-05-05 22:46:24 +02:00
464b84ab2d
Merge pull request '📝 docs(changelog): record PRs #80 , #81 ' (#82 ) from vibe/batch14-task-changelog-79-81 into main
arcodange
2026-05-05 22:45:00 +02:00
5929bbcee1
📝 docs(changelog): record PRs #80 , #81
Gabriel Radureau
2026-05-05 22:44:42 +02:00
99c71ca815
📝 docs: 2026-05-05 autonomous session recap (#81 )
Gabriel Radureau
2026-05-05 22:43:27 +02:00
6aeb197f58
Merge pull request '📝 docs: PHASE_B_ROADMAP — mark B.3 + B.4 done' (#80 ) from vibe/batch12-task-phase-b-roadmap-update into main
arcodange
2026-05-05 22:40:51 +02:00
5ad596d163
📝 docs: PHASE_B_ROADMAP — mark B.3 + B.4 done (PRs #74 , #75 , #76 )
Gabriel Radureau
2026-05-05 22:40:27 +02:00
c9389282a5
Merge pull request '📝 docs(changelog): record PRs #73 , #78 ' (#79 ) from vibe/batch11-task-changelog-78 into main
arcodange
2026-05-05 22:39:10 +02:00
2a7d2cad82
📝 docs(changelog): record PRs #73 , #78
Gabriel Radureau
2026-05-05 22:38:54 +02:00
d8bab4541d
📝 docs: Mistral autonomous pattern guide for contributors (#78 )
Gabriel Radureau
2026-05-05 22:37:22 +02:00
fe33127969
📝 docs(changelog): record PRs #74 , #75 , #76 (#77 )
Gabriel Radureau
2026-05-05 22:34:31 +02:00
f1443e0fd7
🧪 test(auth): OIDC handler unit tests (ADR-0028 Phase B.4 follow-up) (#76 )
Gabriel Radureau
2026-05-05 22:31:40 +02:00
d19fed6610
✨ feat(auth): OIDC HTTP handlers /start + /callback (ADR-0028 Phase B.4) (#75 )
Gabriel Radureau
2026-05-05 22:29:34 +02:00
9b4087b765
✨ feat(auth): implement OIDC client methods (ADR-0028 Phase B.3) (#74 )
Gabriel Radureau
2026-05-05 19:54:08 +02:00
0c01789605
📝 docs: AUTH.md synthesis (Phase A complete, Phase B partial) (#73 )
Gabriel Radureau
2026-05-05 19:36:25 +02:00
0ea47d9c68
📝 docs(changelog): record PRs #67-#71 (#72 )
Gabriel Radureau
2026-05-05 19:31:39 +02:00
55f0a0da02
📝 docs: ADR-0028 Phase B roadmap (B.3 / B.4 / B.5 outline) (#71 )
Gabriel Radureau
2026-05-05 19:30:58 +02:00
e6499ac6b8
📝 docs(changelog): record PRs #67 , #68 , #69
vibe/batch4-task-a-changelog-update
Gabriel Radureau
2026-05-05 19:28:01 +02:00
fbf00a3cd0
✨ feat(auth): pkg/auth skeleton for OpenID Connect (ADR-0028 Phase B prep) (#69 )
Gabriel Radureau
2026-05-05 19:24:41 +02:00
001172e5b3
Merge pull request '📝 docs: mkcert local HTTPS setup + Makefile cert target (ADR-0028 Phase B prep)' (#68 ) from vibe/batch3-task-y-mkcert-doc into main
arcodange
2026-05-05 19:23:13 +02:00
c05e508d56
📝 docs: mkcert local HTTPS setup + Makefile cert target (ADR-0028 Phase B prep)
Gabriel Radureau
2026-05-05 19:22:38 +02:00
b17b727157
✨ feat(server): add GET /api/v1/uptime endpoint (#67 )
Gabriel Radureau
2026-05-05 19:18:24 +02:00
087ce8a4e1
📝 docs: add top-level CHANGELOG.md (keepachangelog format) (#66 )
Gabriel Radureau
2026-05-05 19:17:53 +02:00
b6a6a2b3d7
✨ feat(user): magic-link expired-token cleanup loop (ADR-0028 Phase A consequence) (#65 )
Gabriel Radureau
2026-05-05 13:07:01 +02:00
6ed95165d3
feat(config): OIDC provider config skeleton (ADR-0028 Phase B.1 prep) (#64 )
Gabriel Radureau
2026-05-05 13:04:14 +02:00
9072b3e246
✨ feat(bdd): magic-link BDD scenarios + bcrypt overflow fix (ADR-0028 Phase A.5) (#63 )
Gabriel Radureau
2026-05-05 11:44:41 +02:00
f39acf5de5
✨ feat(auth): magic-link request + consume HTTP handlers (ADR-0028 Phase A.4) (#62 )
Gabriel Radureau
2026-05-05 11:32:12 +02:00
c9ab876dfe
✨ feat(user): magic_link_tokens table + repository (ADR-0028 Phase A.3) (#61 )
Gabriel Radureau
2026-05-05 11:24:06 +02:00
b3027d2669
✨ feat(bdd): pkg/bdd/mailpit/ HTTP client + integration tests (ADR-0030 Phase A.2) (#60 )
Gabriel Radureau
2026-05-05 10:51:33 +02:00
ef32e750ed
✨ feat(email): pkg/email + Mailpit docker-compose service (ADR-0029 Phase A.1) (#59 )
Gabriel Radureau
2026-05-05 10:47:03 +02:00
235cc41f68
📝 docs(adr): ADR-0028/0029/0030 — passwordless auth + Mailpit + BDD email strategy (#58 )
Gabriel Radureau
2026-05-05 10:42:35 +02:00
3b4b40c1cf
🐛 fix(bdd): shouldEnableV2 wrongly matched ~@v2 as @v2 substring + new gate regression scenario (#57 )
Gabriel Radureau
2026-05-05 10:38:08 +02:00
61837b7385
🐛 fix(bdd): shouldEnableV2 wrongly matched ~@v2 as @v2 substring
fix/should-enable-v2-tag-parsing
Gabriel Radureau
2026-05-05 10:37:50 +02:00
de5b599455
✨ feat(server): api.v2_enabled hot-reload via middleware gate (ADR-0023 Phase 4) (#56 )
Gabriel Radureau
2026-05-05 10:35:03 +02:00
9895c159fe
📝 docs(adr): ADR-0027 Ollama Tier 1 onboarding + README index reconciliation (#55 )
Gabriel Radureau
2026-05-05 10:24:01 +02:00
8d93050636
feat(server): add go_version to /api/info response (#54 )
Gabriel Radureau
2026-05-05 10:18:30 +02:00
42d165624b
🧪 test(user): SHA-256 fingerprint stays non-empty and != secret value (Mistral autonomous) (#53 )
Gabriel Radureau
2026-05-05 10:08:36 +02:00
e9d61a7fb0
🧪 test(bdd): admin metadata endpoint security property — no secret leak (#52 )
Gabriel Radureau
2026-05-05 09:56:17 +02:00
f71495b6fc
✨ feat(admin): GET /api/v1/admin/jwt/secrets — metadata-only introspection (#51 )
Gabriel Radureau
2026-05-05 09:51:54 +02:00
46df1f6170
🔧 chore(config): defense-in-depth for WatchAndApply test race (Q-038) (#50 )
Gabriel Radureau
2026-05-05 09:45:14 +02:00
189d44d70f
🔧 chore(config): defense-in-depth for the WatchAndApply test race (Q-038)
fix/config-test-main-quiet-zerolog
Gabriel Radureau
2026-05-05 09:44:58 +02:00
92a8027dd4
✨ feat(server): wire sampler hot-reload callback (ADR-0023 Phase 3, sub-phase 3.3) (#49 )
Gabriel Radureau
2026-05-05 09:42:38 +02:00
f97b6874c9
🐛 fix(config): remove racy log.Info in WatchAndApply cancel goroutine (#48 )
Gabriel Radureau
2026-05-05 09:40:03 +02:00
7d95259667
🐛 fix(config): remove racy log.Info in WatchAndApply cancel goroutine
fix/race-in-config-watcher
Gabriel Radureau
2026-05-05 09:39:46 +02:00
3d9746ed65
🐛 fix(ci): remove dollar-double-brace expression from comment that still gets interpolated (#47 )
Gabriel Radureau
2026-05-05 09:34:00 +02:00
2eb69f2709
feat(config): add sampler hot-reload callback for ADR-0023 Phase 3.2
feat/adr-0023-phase3b-sampler-reload
Gabriel Radureau
2026-05-05 09:32:08 +02:00
8147991fe0
✨ feat(telemetry): ReconfigureTracerProvider for sampler hot-reload (ADR-0023 Phase 3, sub-phase 3.1) (#45 )
Gabriel Radureau
2026-05-05 09:27:20 +02:00
3c73ca39d6
✨ feat(auth): JWT TTL hot-reload + fix hardcoded 24h bug (ADR-0023 Phase 2) (#44 )
Gabriel Radureau
2026-05-05 09:09:22 +02:00
4afc15b82e
🐛 fix(frontend): apply server:false + route.fulfill to health spec (#43 )
Gabriel Radureau
2026-05-05 09:04:48 +02:00
b33ad236e1
✨ feat(config): hot-reload Phase 1 — logging.level (ADR-0023) (#42 )
Gabriel Radureau
2026-05-05 08:45:19 +02:00
03ea2a7b89
✨ feat(auth): JWT secret retention policy + automatic cleanup loop (ADR-0021) (#41 )
Gabriel Radureau
2026-05-05 08:40:27 +02:00
a2beadc458
✨ feat(server): /api/info aggregator + frontend version footer (#40 )
Gabriel Radureau
2026-05-05 08:29:26 +02:00
4a3f1bb138
📝 docs(adr): close 5 partial ADRs with code-confirmed status updates (#39 )
Gabriel Radureau
2026-05-05 08:07:08 +02:00
7c5f11779e
🐛 fix(ci): replace head_commit.message expression with git log (shell injection) (#38 )
Gabriel Radureau
2026-05-05 07:29:40 +02:00
ee4e8b2ee1
🎨 chore(server): apply swag fmt alignment to swagger annotations (#37 )
Gabriel Radureau
2026-05-04 07:58:51 +02:00
75ae7e3c17
📝 docs: homogenize API + BDD env docs (verifier skill audit) (#36 )
Gabriel Radureau
2026-05-04 07:53:31 +02:00
82feaec51f
✨ feat(bdd): parallel-safe schema-per-package isolation (T12 stage 2/2) — 2.85x speedup (#35 )
Gabriel Radureau
2026-05-03 19:42:09 +02:00
4452620df8
✨ feat(user): foundation for parallel-safe BDD isolation (T12 stage 1/2) (#34 )
Gabriel Radureau
2026-05-03 18:03:43 +02:00
7c3617c9d7
♻️ refactor(frontend): split HealthDashboard into smart wrapper + dumb View for state-based stories (#33 )
Gabriel Radureau
2026-05-03 17:55:47 +02:00
db13b3ee0c
🐛 fix(frontend): Playwright now detects health endpoint failures (was silently passing) (#32 )
Gabriel Radureau
2026-05-03 16:46:57 +02:00
17130082c6
🐛 fix(ci): version-bump fallback for workflow_dispatch trigger (#31 )
Gabriel Radureau
2026-05-03 16:42:24 +02:00
a57bf4dd19
✨ feat(frontend): Storybook + auto-generated Playwright e2e docs with screenshots (#30 )
Gabriel Radureau
2026-05-03 16:40:27 +02:00
301471f728
✨ feat(server): cache /api/v1/greet responses + admin cache flush endpoint (#29 )
Gabriel Radureau
2026-05-03 16:33:02 +02:00
93bd384ca8
🐛 fix(bdd): revert PR #26 schema isolation + cache flush + sequential CI tests (#28 )
Gabriel Radureau
2026-05-03 16:28:57 +02:00
63d27cc35e
🐛 fix(bdd): revert PR #26 schema isolation, add cache flush + sequential test execution
fix/bdd-cache-flush-and-revert-schema-isolation
Gabriel Radureau
2026-05-03 16:28:21 +02:00
11fefe3bd9
🐛 fix(bdd): exclude @v2 scenarios from default BDD test runs (#27 )
Gabriel Radureau
2026-05-03 13:59:25 +02:00
6b39d3c3c9
🐛 fix(bdd): exclude @v2 scenarios from default BDD test runs
fix/exclude-v2-from-default-bdd
Gabriel Radureau
2026-05-03 13:59:11 +02:00
9b6c384eb2
🐛 fix(ci): enable BDD_SCHEMA_ISOLATION to prevent flaky AuthBDD failures (#26 )
Gabriel Radureau
2026-05-03 13:52:03 +02:00
0abc383bed
✨ feat(frontend): scaffold minimal Nuxt 3 frontend with healthz dashboard (#25 )
Gabriel Radureau
2026-05-03 13:42:06 +02:00
c939ba7786
📝 docs(adr): audit and update Status for 5 implemented ADRs (#24 )
Gabriel Radureau
2026-05-03 13:32:00 +02:00
358e3df38b
✨ feat(cache): add in-memory cache service (ADR-0022 Phase 1 part 2) (#23 )
Gabriel Radureau
2026-05-03 13:24:17 +02:00
54dd0cc80f
✨ feat(server): add per-IP rate limit middleware on /api/v1/greet (#22 )
Gabriel Radureau
2026-05-03 13:16:29 +02:00
9cf6e7f1c4
🐛 fix(bdd): align healthz scenario step text with registered regex (#21 )
Gabriel Radureau
2026-05-03 12:35:34 +02:00
045823ec8e
✨ feat(server): add /api/healthz endpoint with rich health info (#20 )
Gabriel Radureau
2026-05-03 12:25:54 +02:00
8503d0824e
🐛 fix(readme): restore badges removed by c17fb4f (#19 )
Gabriel Radureau
2026-05-03 12:03:10 +02:00
a24b4fdb3b
📝 docs(adr): homogenize 23 ADRs + rewrite README (Tâche 7 migration) (#18 )
Gabriel Radureau
2026-05-03 11:01:13 +02:00
29272b8fba
🔀 merge: integrate origin/main (PR #16 JSON logging fix) into restructure branch
feature/restructure-agents-md
Gabriel Radureau
2026-05-03 00:02:19 +02:00