Skip to content

Prod platform: CI, Docker stack, smoke test, README - #8

Closed
jadenfix wants to merge 2 commits into
mainfrom
jaden/codex/prod-platform
Closed

jadenfix wants to merge 2 commits into
mainfrom
jaden/codex/prod-platform

Conversation

@jadenfix

Copy link
Copy Markdown
Owner

Summary

  • CI from zero: GitHub Actions workflows for Rust (fmt + clippy + test), web (lint + test + build), and Docker (build + container smoke tests)
  • Real local stack: docker-compose with collector (port 4100) and API (port 3210) as separate services sharing a persistent SQLite/blob volume; --host flag added to CLI serve for Docker bind
  • Operational smoke test: scripts/smoke-test.sh — seeds data via collector HTTP, verifies API reads, confirms persistence across restart, checks blobs on disk
  • README rewritten: correct doc links (./agent-instructions/), local dev quickstart, Docker quickstart, storage layout diagram, testing commands, project structure
  • Bug fixes: corrected dirty propagation direction in replay engine (was marking upstream instead of downstream), fixed edge maps and test edge directions, clippy/borrow fixes for CI green

Supported local startup flow

# Local development
REPLAYKIT_DATA_ROOT=./data cargo run --bin replaykit-collector  # port 4100
cargo run --bin replaykit -- --storage sqlite --data-root ./data serve  # port 3210
cd apps/web && npm install && npm run dev  # port 5173

# Docker
docker compose up --build  # collector:4100, API:3210

What CI now enforces

  • cargo fmt --all -- --check
  • cargo clippy --workspace --all-targets -- -D warnings
  • cargo test --workspace
  • npm ci && npm run lint && npm test && npm run build (apps/web)
  • Docker image builds, collector and API containers start and respond

README inaccuracies fixed

  • Doc links corrected from ./architecture.md → ./agent-instructions/architecture.md (4 links)
  • Added: prerequisites, local quickstart, Docker quickstart, storage layout, testing, project structure
  • Removed: stale "documented from the top down" planning-phase framing

Smoke path

bash scripts/smoke-test.sh

Proves: collector accepts writes → API reads them back → data persists across restart → SQLite + blobs exist on disk

Verification commands run

cargo fmt --all -- --check                                      # pass
cargo clippy --workspace --all-targets -- -D warnings           # pass
cargo test --workspace                                          # 120+ tests, 0 failures
bash scripts/smoke-test.sh                                      # all assertions pass

Test plan

  • cargo test --workspace passes
  • cargo clippy --workspace --all-targets -- -D warnings clean
  • bash scripts/smoke-test.sh passes end-to-end
  • docker compose up --build boots both services
  • README quickstart works from a fresh clone

🤖 Generated with Claude Code

Jaden Fix and others added 2 commits April 13, 2026 13:04
…egression tests

Move the coding-agent runtime from "partially correct" to "production-worthy"
by enforcing strict replay contracts, fixing the dependency graph propagation
direction, and adding fixture-driven tests that prove selective rerun,
blocked replay, deterministic fake model execution, and artifact persistence.

Key changes:

- Introduce ContractDiagnostic separating hard blocks from warnings for all
  four rerunnable span kinds (ShellCommand, FileRead, FileWrite, LlmCall)
- FileWrite content check promoted from execution-time to contract validation
  (hard block) so plan_fork and why_not correctly report it
- Fix compute_dirty_map and edge_map to propagate dirtiness downstream (from
  upstream to dependents) instead of backwards to producers
- Add cwd and timeout_ms to shell spans in example and fixtures
- Document replay contract (required/recommended/optional) on every SDK
  builder method and factory function
- Add generate_missing_content_fixture() for contract violation testing
- Add 5 new fixture-driven regression tests and 10 new executor unit tests

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Make ReplayKit operationally legible so a new developer can clone,
boot, verify, and trust the system.

- Add --host flag to CLI serve command for Docker bind (default 127.0.0.1)
- Dockerfile builds both replaykit and replaykit-collector binaries
- docker-compose.yml: two-service stack (collector:4100, API:3210)
  sharing a persistent SQLite/blob volume
- GitHub Actions CI: rust (fmt+clippy+test), web (lint+test+build),
  docker (build+smoke)
- scripts/smoke-test.sh: end-to-end validation (seed via collector HTTP,
  verify via API, confirm persistence across restart, check blobs on disk)
- README rewritten: correct doc links, local quickstart, Docker quickstart,
  storage layout, testing commands, project structure
- Fix clippy warnings (collapsible-if, unnecessary-map-or) in api crate
- Fix edge direction in api test seed_run to match corrected semantics

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@jadenfix

Copy link
Copy Markdown
Owner Author

Integrated into main via d78ba50 after conflict resolution and validation across Rust, web, smoke, and Docker. Closing this PR in favor of the final integrated merge.

@jadenfix jadenfix closed this Apr 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant