Commit graph

9 commits

Author SHA1 Message Date
jedarden
603b17f708 P8.1: Simplify Dockerfile to scratch-only, update CI to use /workspace/artifacts/
Changes:
- Dockerfile: Remove multi-stage build, now expects pre-built miroir-proxy-linux-amd64
- Dockerfile: Add inline comment documenting the plan §7 cargo-build template
- CI workflow: Change /workspace/dist → /workspace/artifacts to match plan §7
- CI workflow: Update create-github-release to reference /workspace/artifacts

This aligns with plan §7 and §12: scratch base, no libc, minimal attack surface.
The CI builds the static musl binary separately, then Dockerfile copies it.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-23 07:16:34 -04:00
jedarden
90462daa64 P5.5 §13.5: Fix drift_reconciler compilation and complete two-phase settings broadcast
Complete the two-phase settings broadcast with drift reconciler implementation:

- Fix drift_reconciler module compilation (remove unused imports, correct type signatures)
- Complete SettingsBroadcast integration in proxy layer (admin_endpoints.rs)
- Add settings version tracking metrics (middleware.rs)
- Initialize drift_reconciler worker in main.rs
- Fix admin route registration (admin.rs, aliases.rs)

Acceptance tests verify:
1. Normal flow: propose+verify succeed, settings_version increments once
2. Mid-broadcast node failure: reissue succeeds after backoff
3. Out-of-band drift: reconciler detects and repairs within interval_s
4. X-Miroir-Min-Settings-Version floor excludes stale nodes
5. Legacy sequential strategy compatibility

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-22 18:10:10 -04:00
jedarden
9ba6d545ca P11.7: Add quick-start example artifacts (Docker Compose + config)
Adds the on-disk examples referenced by plan §11 "Quick start (local, Docker Compose)":

- examples/docker-compose-dev.yml: 3 Meilisearch nodes + 1 Miroir orchestrator
- examples/dev-config.yaml: Matching Miroir config (16 shards, RF=1)
- examples/README.md: Comprehensive docs for running, troubleshooting, teardown
- k8s/argo-workflows/miroir-ci-docker-compose-smoke.yaml: CI smoke tests

The README.md quick start section already references these examples.

Acceptance:
 docker-compose-dev.yml boots via docker compose up
 dev-config.yaml mounted into Miroir container
 examples/README.md documents usage and teardown
 CI smoke job exercises compose stack (health + index + search tests)
 README.md quick start points to examples/docker-compose-dev.yml

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-20 06:49:05 -04:00
jedarden
5bec6e2bf3 P12: close Phase 12 epic — all 6 open problems triaged and documented
OP#1 (shard migration write safety): chaos-test scope documented; anti-entropy
as the mitigation is complete. Bead miroir-zc2.1 closed.

OP#2 (Raft vs Redis): full crate survey + prototype + benchmark. Decision:
Redis wins, revisit before v2.0. Bead miroir-zc2.2 closed; docs in
docs/research/raft-task-store.md.

OP#3 (resharding 2× load): benchmark confirms 2.00× amplification across all
corpus sizes; CLI schedule-window guard implemented. Bead miroir-zc2.3 closed;
docs in docs/benchmarks/resharding-load.md.

OP#4 (score normalization): Kendall τ validation; score-based merge fails (τ=0.79),
RRF fails (τ=0.14), DFS preflight passes (τ=0.98). Bead miroir-zc2.4 closed;
DFS implementation tracked in miroir-yio; docs in
docs/research/score-normalization-at-scale.md.

OP#5 (dump import variants): compatibility matrix published at
docs/dump-import/compatibility-matrix.md. Bead miroir-zc2.5 closed.

OP#6 (arm64): deferred to v1.x+. Implementation roadmap expanded in
docs/plan/plan.md (commit 7f03fe6). Bead miroir-zc2.6 remains open as a
standing placeholder — to be closed only when arm64 is a live deliverable.

Also: minor unused-variable warning fixes in task_registry.rs, redis.rs,
sqlite.rs; add k8s/openbao-policy.hcl (ESO least-privilege policy for §9);
proptest regression baseline for sqlite task_store.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 19:14:23 -04:00
jedarden
ffe1d63d58 P8: Finalize CI/CD templates, prod ArgoCD app, and CHANGELOG for v0.1.0
- miroir-ci: use cargo fmt --all, add pre-release detection for GitHub releases
- miroir-ci-smoke: fix secret ref to github-token
- miroir-release: rewrite github-release step with gh CLI, build binaries in
  release step, add pre-release flag and resource limits
- miroir-release-ready: fix serviceAccountName to argo-workflow
- miroir-application.yaml: switch prod to Redis backend, 4 Meilisearch replicas
- redis.rs: remove unused conn() helper
- CHANGELOG: date 0.1.0 release, add missing release/prod entries

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-19 15:09:14 -04:00
jedarden
dcab90d2c9 Add prod ArgoCD Application manifest for ardenone-cluster
Matches the manifest already in declarative-config (commit 3d72934).
OCI Helm chart at ghcr.io/jedarden/charts/miroir, automated sync
with prune + selfHeal + ServerSideApply.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-19 14:36:31 -04:00
jedarden
42905066cf P8: Fix miroir-release Kaniko build — use shell script instead of sprig expressions
Replace sprig regex template expressions with a shell script approach for
Kaniko destination tags, matching the pattern in miroir-ci.yaml. Pin Kaniko
image to v1.23.0-debug. Fix serviceAccountName from argo-runner to argo-workflow.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-19 14:33:51 -04:00
jedarden
9b2f11f71b P8: Sync CI/CD templates and ArgoCD Application to miroir repo (plan §6/§7)
Adds miroir-ci WorkflowTemplate (checkout → lint → test → musl build →
Kaniko push + GitHub release, tag-gated), miroir-ci-smoke quick lint+test
template, and miroir-dev ArgoCD Application reference. Updates CHANGELOG.md
with Phase 8 deployment entries.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-19 13:28:07 -04:00
jedarden
2dcfae8822 P8.6: Release mechanics — bump script, release-ready check, PR template, Argo CIs
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-19 09:54:26 -04:00