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
CI/CD Pipeline / Build Docker Cache (push) Successful in 26s
CI/CD Pipeline / Trigger Docker Push (push) Has been cancelled
CI/CD Pipeline / CI Pipeline (push) Has been cancelled
2026-05-05 19:23:13 +02:00
c05e508d56
📝 docs: mkcert local HTTPS setup + Makefile cert target (ADR-0028 Phase B prep)
2026-05-05 19:22:38 +02:00
b17b727157
✨ feat(server): add GET /api/v1/uptime endpoint ( #67 )
...
CI/CD Pipeline / Build Docker Cache (push) Successful in 8s
CI/CD Pipeline / Trigger Docker Push (push) Has been cancelled
CI/CD Pipeline / CI Pipeline (push) Has been cancelled
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-05 19:18:24 +02:00
087ce8a4e1
📝 docs: add top-level CHANGELOG.md (keepachangelog format) ( #66 )
...
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-05 19:17:53 +02:00
b6a6a2b3d7
✨ feat(user): magic-link expired-token cleanup loop (ADR-0028 Phase A consequence) ( #65 )
...
CI/CD Pipeline / Build Docker Cache (push) Successful in 11s
CI/CD Pipeline / CI Pipeline (push) Successful in 4m27s
CI/CD Pipeline / Trigger Docker Push (push) Successful in 6s
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-05 13:07:01 +02:00
6ed95165d3
feat(config): OIDC provider config skeleton (ADR-0028 Phase B.1 prep) ( #64 )
...
CI/CD Pipeline / Build Docker Cache (push) Successful in 9s
CI/CD Pipeline / Trigger Docker Push (push) Has been cancelled
CI/CD Pipeline / CI Pipeline (push) Has been cancelled
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-05 13:04:14 +02:00
9072b3e246
✨ feat(bdd): magic-link BDD scenarios + bcrypt overflow fix (ADR-0028 Phase A.5) ( #63 )
...
CI/CD Pipeline / Build Docker Cache (push) Successful in 9s
CI/CD Pipeline / CI Pipeline (push) Successful in 5m0s
CI/CD Pipeline / Trigger Docker Push (push) Successful in 5s
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-05 11:44:41 +02:00
f39acf5de5
✨ feat(auth): magic-link request + consume HTTP handlers (ADR-0028 Phase A.4) ( #62 )
...
CI/CD Pipeline / Build Docker Cache (push) Successful in 8s
CI/CD Pipeline / CI Pipeline (push) Successful in 4m56s
CI/CD Pipeline / Trigger Docker Push (push) Successful in 6s
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-05 11:32:12 +02:00
c9ab876dfe
✨ feat(user): magic_link_tokens table + repository (ADR-0028 Phase A.3) ( #61 )
...
CI/CD Pipeline / Build Docker Cache (push) Successful in 8s
CI/CD Pipeline / CI Pipeline (push) Successful in 5m11s
CI/CD Pipeline / Trigger Docker Push (push) Successful in 6s
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-05 11:24:06 +02:00
b3027d2669
✨ feat(bdd): pkg/bdd/mailpit/ HTTP client + integration tests (ADR-0030 Phase A.2) ( #60 )
...
CI/CD Pipeline / Build Docker Cache (push) Successful in 11s
CI/CD Pipeline / CI Pipeline (push) Successful in 5m23s
CI/CD Pipeline / Trigger Docker Push (push) Successful in 5s
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-05 10:51:33 +02:00
ef32e750ed
✨ feat(email): pkg/email + Mailpit docker-compose service (ADR-0029 Phase A.1) ( #59 )
...
CI/CD Pipeline / Build Docker Cache (push) Successful in 13s
CI/CD Pipeline / CI Pipeline (push) Successful in 4m3s
CI/CD Pipeline / Trigger Docker Push (push) Successful in 4s
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-05 10:47:03 +02:00
235cc41f68
📝 docs(adr): ADR-0028/0029/0030 — passwordless auth + Mailpit + BDD email strategy ( #58 )
...
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-05 10:42:35 +02:00
3b4b40c1cf
🐛 fix(bdd): shouldEnableV2 wrongly matched ~@v2 as @v2 substring + new gate regression scenario ( #57 )
...
CI/CD Pipeline / Build Docker Cache (push) Successful in 14s
CI/CD Pipeline / CI Pipeline (push) Failing after 6m31s
CI/CD Pipeline / Trigger Docker Push (push) Has been skipped
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-05 10:38:08 +02:00
de5b599455
✨ feat(server): api.v2_enabled hot-reload via middleware gate (ADR-0023 Phase 4) ( #56 )
...
CI/CD Pipeline / Build Docker Cache (push) Successful in 9s
CI/CD Pipeline / Trigger Docker Push (push) Has been cancelled
CI/CD Pipeline / CI Pipeline (push) Has been cancelled
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-05 10:35:03 +02:00
9895c159fe
📝 docs(adr): ADR-0027 Ollama Tier 1 onboarding + README index reconciliation ( #55 )
...
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-05 10:24:01 +02:00
8d93050636
feat(server): add go_version to /api/info response ( #54 )
...
CI/CD Pipeline / Build Docker Cache (push) Successful in 7s
CI/CD Pipeline / CI Pipeline (push) Successful in 4m57s
CI/CD Pipeline / Trigger Docker Push (push) Successful in 6s
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-05 10:18:30 +02:00
42d165624b
🧪 test(user): SHA-256 fingerprint stays non-empty and != secret value (Mistral autonomous) ( #53 )
...
CI/CD Pipeline / Build Docker Cache (push) Successful in 8s
CI/CD Pipeline / CI Pipeline (push) Successful in 4m9s
CI/CD Pipeline / Trigger Docker Push (push) Successful in 6s
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-05 10:08:36 +02:00
e9d61a7fb0
🧪 test(bdd): admin metadata endpoint security property — no secret leak ( #52 )
...
CI/CD Pipeline / Build Docker Cache (push) Successful in 11s
CI/CD Pipeline / CI Pipeline (push) Successful in 3m41s
CI/CD Pipeline / Trigger Docker Push (push) Successful in 5s
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-05 09:56:17 +02:00
f71495b6fc
✨ feat(admin): GET /api/v1/admin/jwt/secrets — metadata-only introspection ( #51 )
...
CI/CD Pipeline / Build Docker Cache (push) Successful in 57s
CI/CD Pipeline / Trigger Docker Push (push) Has been cancelled
CI/CD Pipeline / CI Pipeline (push) Has been cancelled
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-05 09:51:54 +02:00
46df1f6170
🔧 chore(config): defense-in-depth for WatchAndApply test race (Q-038) ( #50 )
...
CI/CD Pipeline / Build Docker Cache (push) Successful in 14s
CI/CD Pipeline / Trigger Docker Push (push) Has been cancelled
CI/CD Pipeline / CI Pipeline (push) Has been cancelled
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-05 09:45:14 +02:00
92a8027dd4
✨ feat(server): wire sampler hot-reload callback (ADR-0023 Phase 3, sub-phase 3.3) ( #49 )
...
CI/CD Pipeline / Build Docker Cache (push) Successful in 14s
CI/CD Pipeline / Trigger Docker Push (push) Has been cancelled
CI/CD Pipeline / CI Pipeline (push) Has been cancelled
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-05 09:42:38 +02:00
f97b6874c9
🐛 fix(config): remove racy log.Info in WatchAndApply cancel goroutine ( #48 )
...
CI/CD Pipeline / Build Docker Cache (push) Successful in 11s
CI/CD Pipeline / Trigger Docker Push (push) Has been cancelled
CI/CD Pipeline / CI Pipeline (push) Has been cancelled
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-05 09:40:03 +02:00
3d9746ed65
🐛 fix(ci): remove dollar-double-brace expression from comment that still gets interpolated ( #47 )
...
CI/CD Pipeline / Build Docker Cache (push) Successful in 10s
CI/CD Pipeline / CI Pipeline (push) Successful in 3m44s
CI/CD Pipeline / Trigger Docker Push (push) Successful in 5s
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-05 09:34:00 +02:00
8147991fe0
✨ feat(telemetry): ReconfigureTracerProvider for sampler hot-reload (ADR-0023 Phase 3, sub-phase 3.1) ( #45 )
...
CI/CD Pipeline / Build Docker Cache (push) Successful in 14s
CI/CD Pipeline / CI Pipeline (push) Failing after 3m48s
CI/CD Pipeline / Trigger Docker Push (push) Has been skipped
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-05 09:27:20 +02:00
3c73ca39d6
✨ feat(auth): JWT TTL hot-reload + fix hardcoded 24h bug (ADR-0023 Phase 2) ( #44 )
...
CI/CD Pipeline / Build Docker Cache (push) Successful in 23s
CI/CD Pipeline / CI Pipeline (push) Failing after 5m23s
CI/CD Pipeline / Trigger Docker Push (push) Has been skipped
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-05 09:09:22 +02:00
4afc15b82e
🐛 fix(frontend): apply server:false + route.fulfill to health spec ( #43 )
...
CI/CD Pipeline / Build Docker Cache (push) Successful in 13s
CI/CD Pipeline / Trigger Docker Push (push) Has been cancelled
CI/CD Pipeline / CI Pipeline (push) Has been cancelled
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-05 09:04:48 +02:00
b33ad236e1
✨ feat(config): hot-reload Phase 1 — logging.level (ADR-0023) ( #42 )
...
CI/CD Pipeline / Build Docker Cache (push) Successful in 59s
CI/CD Pipeline / CI Pipeline (push) Failing after 4m3s
CI/CD Pipeline / Trigger Docker Push (push) Has been skipped
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-05 08:45:19 +02:00
03ea2a7b89
✨ feat(auth): JWT secret retention policy + automatic cleanup loop (ADR-0021) ( #41 )
...
CI/CD Pipeline / Build Docker Cache (push) Successful in 13s
CI/CD Pipeline / Trigger Docker Push (push) Has been cancelled
CI/CD Pipeline / CI Pipeline (push) Has been cancelled
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-05 08:40:27 +02:00
a2beadc458
✨ feat(server): /api/info aggregator + frontend version footer ( #40 )
...
CI/CD Pipeline / Build Docker Cache (push) Successful in 9s
CI/CD Pipeline / CI Pipeline (push) Failing after 4m48s
CI/CD Pipeline / Trigger Docker Push (push) Has been skipped
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-05 08:29:26 +02:00
4a3f1bb138
📝 docs(adr): close 5 partial ADRs with code-confirmed status updates ( #39 )
...
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-05 08:07:08 +02:00
7c5f11779e
🐛 fix(ci): replace head_commit.message expression with git log (shell injection) ( #38 )
...
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-05 07:29:40 +02:00
ee4e8b2ee1
🎨 chore(server): apply swag fmt alignment to swagger annotations ( #37 )
...
CI/CD Pipeline / Build Docker Cache (push) Successful in 8s
CI/CD Pipeline / CI Pipeline (push) Failing after 4m10s
CI/CD Pipeline / Trigger Docker Push (push) Has been skipped
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-04 07:58:51 +02:00
75ae7e3c17
📝 docs: homogenize API + BDD env docs (verifier skill audit) ( #36 )
...
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
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 )
...
CI/CD Pipeline / Build Docker Cache (push) Successful in 7s
CI/CD Pipeline / CI Pipeline (push) Failing after 3m58s
CI/CD Pipeline / Trigger Docker Push (push) Has been skipped
Per-package isolated Postgres schema with migrations. Local benchmark: 12.87s sequential → 4.51s parallel = 2.85x. ADR-0025 status to Implemented. CI uses BDD_SCHEMA_ISOLATION=true.
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-03 19:42:09 +02:00
4452620df8
✨ feat(user): foundation for parallel-safe BDD isolation (T12 stage 1/2) ( #34 )
...
CI/CD Pipeline / Build Docker Cache (push) Successful in 10s
CI/CD Pipeline / CI Pipeline (push) Failing after 4m4s
CI/CD Pipeline / Trigger Docker Push (push) Has been skipped
NewPostgresRepositoryFromDSN factory + BuildSchemaIsolatedDSN helper + integration test proving per-schema isolation works at repo level. Foundation for T12. Wiring into testserver is stage 2/2.
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-03 18:03:43 +02:00
7c3617c9d7
♻️ refactor(frontend): split HealthDashboard into smart wrapper + dumb View for state-based stories ( #33 )
...
CI/CD Pipeline / Build Docker Cache (push) Successful in 12s
CI/CD Pipeline / CI Pipeline (push) Failing after 4m34s
CI/CD Pipeline / Trigger Docker Push (push) Has been skipped
SRP split: HealthDashboardView (presentational, props-based) + HealthDashboard (smart wrapper, useFetch). Enables 4 Storybook stories per state + unit testability per branch. Existing testids preserved, Playwright tests still pass.
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-03 17:55:47 +02:00
db13b3ee0c
🐛 fix(frontend): Playwright now detects health endpoint failures (was silently passing) ( #32 )
...
CI/CD Pipeline / Build Docker Cache (push) Successful in 10s
CI/CD Pipeline / CI Pipeline (push) Failing after 5m29s
CI/CD Pipeline / Trigger Docker Push (push) Has been skipped
User caught silent regression: existing test only asserted dashboard visibility, which is also true on the error branch. New tests assert healthy state + new regression test mocks /api/healthz to 502.
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-03 16:46:57 +02:00
17130082c6
🐛 fix(ci): version-bump fallback for workflow_dispatch trigger ( #31 )
...
workflow_dispatch event has no head_commit, so version-bump script was getting empty input and failing the whole workflow. Fall back to git log -1 when event context is empty.
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-03 16:42:24 +02:00
a57bf4dd19
✨ feat(frontend): Storybook + auto-generated Playwright e2e docs with screenshots ( #30 )
...
CI/CD Pipeline / Build Docker Cache (push) Successful in 8s
CI/CD Pipeline / Trigger Docker Push (push) Has been cancelled
CI/CD Pipeline / CI Pipeline (push) Has been cancelled
Storybook 8 + Playwright JSON reporter + auto-generated markdown docs with embedded screenshots and breadcrumbs. Frontend PRs now reviewable from Gitea web UI. ~95% Mistral autonomous via ICM workspace, trainer commit/PR (Mistral hit turn limit).
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-03 16:40:27 +02:00
301471f728
✨ feat(server): cache /api/v1/greet responses + admin cache flush endpoint ( #29 )
...
CI/CD Pipeline / Build Docker Cache (push) Successful in 13s
CI/CD Pipeline / Trigger Docker Push (push) Has been cancelled
CI/CD Pipeline / CI Pipeline (push) Has been cancelled
Extends cache service to /api/v1/greet (per-name 60s) and adds POST /api/admin/cache/flush. ~95% Mistral autonomous via ICM workspace, trainer finalized commit/PR (test scaffold did not compile).
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-03 16:33:02 +02:00
93bd384ca8
🐛 fix(bdd): revert PR #26 schema isolation + cache flush + sequential CI tests ( #28 )
...
CI/CD Pipeline / Build Docker Cache (push) Successful in 11s
CI/CD Pipeline / Trigger Docker Push (push) Has been cancelled
CI/CD Pipeline / CI Pipeline (push) Has been cancelled
Reverts PR #26 (BDD_SCHEMA_ISOLATION caused empty schemas with no tables, 500 errors). Adds sequential package execution (-p 1) + cache flush AfterScenario. AuthBDD goes from 0/5 PASS to 5/5 PASS deterministically. Parallel BDD deferred as architectural follow-up (requires per-schema migrations + dedicated connection pools).
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-03 16:28:57 +02:00
11fefe3bd9
🐛 fix(bdd): exclude @v2 scenarios from default BDD test runs ( #27 )
...
CI/CD Pipeline / Build Docker Cache (push) Successful in 12s
CI/CD Pipeline / CI Pipeline (push) Successful in 7m36s
CI/CD Pipeline / Trigger Docker Push (push) Successful in 12s
Tag 3 untagged v2 scenarios + extend DEFAULT_TAGS to exclude @v2. Companion to PR #26 (BDD_SCHEMA_ISOLATION). Together should produce green CI on default daily runs.
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-03 13:59:25 +02:00
9b6c384eb2
🐛 fix(ci): enable BDD_SCHEMA_ISOLATION to prevent flaky AuthBDD failures ( #26 )
...
Single line: export BDD_SCHEMA_ISOLATION=true before run-bdd-tests.sh. Activates the per-scenario schema isolation already implemented per ADR-0025. Should resolve the AuthBDD flakiness observed across multiple CI runs today.
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-03 13:52:03 +02:00
0abc383bed
✨ feat(frontend): scaffold minimal Nuxt 3 frontend with healthz dashboard ( #25 )
...
CI/CD Pipeline / Build Docker Cache (push) Successful in 9s
CI/CD Pipeline / CI Pipeline (push) Successful in 7m28s
CI/CD Pipeline / Trigger Docker Push (push) Successful in 6s
First Vue 3 / Nuxt 3 / Playwright frontend layer for dance-lessons-coach. Minimal: 1 page, 1 component fetching /api/healthz, 1 e2e test. Out of scope: Storybook, design system, auth pages, deploy.
~95% Mistral autonomous via ICM workspace ~/Work/Vibe/workspaces/frontend-nuxt-scaffold/. Mistral handled the npx nuxi init TUI by falling back to manual file creation (Q-032 documented).
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-03 13:42:06 +02:00
c939ba7786
📝 docs(adr): audit and update Status for 5 implemented ADRs ( #24 )
...
5 ADRs status updated based on file:line evidence audit. 2 kept Proposed (production code absent, only test fixtures). Audit by Mistral Vibe ICM workspace, €2.50, ~95% autonomous.
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-03 13:32:00 +02:00
358e3df38b
✨ feat(cache): add in-memory cache service (ADR-0022 Phase 1 part 2) ( #23 )
...
CI/CD Pipeline / Build Docker Cache (push) Successful in 50s
CI/CD Pipeline / CI Pipeline (push) Successful in 4m22s
CI/CD Pipeline / Trigger Docker Push (push) Successful in 6s
Phase 1 part 2 of ADR-0022 (companion to PR #22 rate-limit). In-memory cache service via go-cache, used by /api/version (60s TTL).
6/6 unit tests pass. ~95% Mistral autonomous via ICM workspace, cost €2.50 stages 01-02 (50% reduction vs T5 thanks to pre-extracted snippets in shared/).
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-03 13:24:17 +02:00
54dd0cc80f
✨ feat(server): add per-IP rate limit middleware on /api/v1/greet ( #22 )
...
CI/CD Pipeline / Build Docker Cache (push) Successful in 1m3s
CI/CD Pipeline / CI Pipeline (push) Successful in 4m4s
CI/CD Pipeline / Trigger Docker Push (push) Successful in 6s
Phase 1 of ADR-0022. In-memory per-IP rate limiter on golang.org/x/time/rate. Returns 429 with Retry-After when exceeded. 7 unit tests pass. BDD scenario @skip until testserver rework. Closes #13 .
~95% Mistral Vibe autonomous via ICM workspace. Cost ~6.5€ (T5 + resume + trainer commit/PR).
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-03 13:16:29 +02:00
9cf6e7f1c4
🐛 fix(bdd): align healthz scenario step text with registered regex ( #21 )
...
CI workflow #598 was failing with "Found undefined steps" because the healthz BDD scenario used "the response status code should be 200" while the registered step regex matches "the status code should be N" (without "response"). Aligns the feature wording with the existing convention used in features/auth/.
PR #21 généré en autonomie complète par Mistral Vibe (€0.24, 13 steps, 11/13 tool calls success). 3rd autonomous PR du jour. Validation Q-030 workaround : prompt 100% ASCII = pas de hang.
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-03 12:35:34 +02:00
045823ec8e
✨ feat(server): add /api/healthz endpoint with rich health info ( #20 )
...
CI/CD Pipeline / Build Docker Cache (push) Successful in 17s
CI/CD Pipeline / CI Pipeline (push) Failing after 4m28s
CI/CD Pipeline / Trigger Docker Push (push) Has been skipped
Adds Kubernetes-style /api/healthz endpoint with status/version/uptime_seconds/timestamp.
Non-breaking — /api/health preserved. Includes unit test (passes locally) and BDD scenario (validated by CI).
Généré ~95% en autonomie par Mistral Vibe via workspace ICM ~/Work/Vibe/workspaces/healthz-feature/.
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-03 12:25:54 +02:00
8503d0824e
🐛 fix(readme): restore badges removed by c17fb4f ( #19 )
...
Régression du squash merge c17fb4f (PR #16 ). Restauration de Go Report Card, BDD Coverage et UNIT Coverage badges.
Généré en autonomie par Mistral Vibe (test ICM workspace, ~/Work/Vibe/workspaces/icm-vs-multiagent/T2-icm/).
Co-authored-by: Gabriel Radureau <arcodange@gmail.com >
Co-committed-by: Gabriel Radureau <arcodange@gmail.com >
2026-05-03 12:03:10 +02:00