Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
9224fcb
docs(33): create phase plan for Copilot CLI tests
RichardHightower Mar 5, 2026
a302816
feat(33-01): add Copilot-native fixture JSON files and run_copilot wr…
RichardHightower Mar 5, 2026
dab12b8
feat(33-01): add smoke.bats and hooks.bats for Copilot CLI tests
RichardHightower Mar 5, 2026
b896ed1
docs(33-01): complete Copilot smoke and hooks plan
RichardHightower Mar 5, 2026
02da769
feat(33-02): create pipeline.bats for Copilot E2E ingest-to-query tests
RichardHightower Mar 5, 2026
93ad5b4
feat(33-02): create negative.bats for Copilot fail-open and error han…
RichardHightower Mar 5, 2026
5d8b428
docs(33-02): complete Copilot pipeline and negative tests plan
RichardHightower Mar 5, 2026
2b9c5e1
docs(phase-33): complete phase execution and verification
RichardHightower Mar 5, 2026
cfc8db6
test(33): complete UAT - 10 passed, 0 issues
RichardHightower Mar 5, 2026
ff7c11f
docs(phase-34): research Codex CLI adapter, tests, and matrix report
RichardHightower Mar 5, 2026
ee29696
docs(34): create phase plan for Codex CLI adapter, tests, and matrix …
RichardHightower Mar 5, 2026
8837a85
feat(34-03): add CLI matrix report script for JUnit XML aggregation
RichardHightower Mar 5, 2026
efcabda
feat(34-03): add matrix-report job to e2e-cli workflow
RichardHightower Mar 5, 2026
5929135
docs(34-03): complete CLI matrix report plan
RichardHightower Mar 5, 2026
a2e6d1f
feat(34-01): create Codex CLI adapter with 5 skills and sandbox docs
RichardHightower Mar 5, 2026
740a4ae
feat(34-01): add Codex fixtures, run_codex wrapper, smoke and hooks t…
RichardHightower Mar 5, 2026
7d15707
docs(34-01): complete Codex adapter and smoke tests plan
RichardHightower Mar 5, 2026
d69ae01
feat(34-02): create Codex pipeline.bats with 5 E2E ingest-to-query tests
RichardHightower Mar 5, 2026
9586a0f
feat(34-02): create Codex negative.bats with 4 fail-open + 3 skipped …
RichardHightower Mar 5, 2026
0579138
docs(34-02): complete Codex pipeline and negative tests plan
RichardHightower Mar 5, 2026
b38f130
docs(phase-34): complete phase execution and verification
RichardHightower Mar 5, 2026
c97824b
chore: complete v2.4 Headless CLI Testing milestone
RichardHightower Mar 5, 2026
9afc45c
chore: release v2.4.0
RichardHightower Mar 5, 2026
a93a247
fix(ci): fix release workflow for macos-x86_64 and linux-aarch64
RichardHightower Mar 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions .github/workflows/e2e-cli.yml
Original file line number Diff line number Diff line change
Expand Up @@ -122,3 +122,33 @@ jobs:
run: |
echo "Bats tests failed for ${{ matrix.cli }}"
exit 1

matrix-report:
name: CLI Matrix Report
needs: [e2e-cli]
if: always()
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Download all JUnit artifacts
uses: actions/download-artifact@v4
with:
path: junit-reports
pattern: junit-*
merge-multiple: false

- name: Generate matrix report
run: |
chmod +x scripts/cli-matrix-report.sh
scripts/cli-matrix-report.sh junit-reports >> $GITHUB_STEP_SUMMARY

- name: Upload matrix report
if: always()
uses: actions/upload-artifact@v4
with:
name: cli-matrix-report
path: junit-reports/
if-no-files-found: ignore
retention-days: 14
3 changes: 2 additions & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:
name: linux-aarch64
cross: true
- target: x86_64-apple-darwin
os: macos-13
os: macos-15
name: macos-x86_64
cross: false
- target: aarch64-apple-darwin
Expand Down Expand Up @@ -145,6 +145,7 @@ jobs:
release:
name: Create Release
needs: build
if: always() && !cancelled()
runs-on: ubuntu-latest
permissions:
contents: write
Expand Down
10 changes: 10 additions & 0 deletions .planning/MILESTONES.md
Original file line number Diff line number Diff line change
Expand Up @@ -136,3 +136,13 @@
**Git range:** `feat(01-00)` → `feat(08-01)`

**What's next:** Teleport indexes (BM25/vector search), additional hook adapters (OpenCode, Gemini CLI), or production hardening

## v2.4 Headless CLI Testing (Shipped: 2026-03-05)

**Phases completed:** 34 phases, 113 plans, 49 tasks

**Key accomplishments:**
- (none recorded)

---

58 changes: 29 additions & 29 deletions .planning/PROJECT.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,11 @@
# Agent Memory

## Current Milestone: v2.4 Headless CLI Testing

**Goal:** Build a shell-based E2E test harness that spawns real CLI processes (Claude Code, OpenCode, Gemini, Copilot, Codex) in headless mode, validating integration behavior in isolated workspaces with matrix reporting.

## Current State

**Version:** v2.3 (Shipped 2026-02-12)
**Status:** Production-ready with install docs, setup skills, and performance benchmarks
**Version:** v2.4 (Shipped 2026-03-05)
**Status:** Production-ready with 5-CLI E2E test harness, matrix reporting, and full adapter coverage

The system implements a complete 6-layer cognitive stack with control plane, multi-agent support, production verification, and user-facing setup experience:
The system implements a complete 6-layer cognitive stack with control plane, multi-agent support, production verification, setup experience, and comprehensive CLI testing:
- Layer 0: Raw Events (RocksDB) — agent-tagged
- Layer 1: TOC Hierarchy (time-based navigation) — contributing_agents tracking
- Layer 2: Agentic TOC Search (index-free, always works)
Expand All @@ -18,14 +14,14 @@ The system implements a complete 6-layer cognitive stack with control plane, mul
- Layer 5: Conceptual Discovery (Topic Graph) — agent-filtered queries
- Layer 6: Ranking Policy (salience, usage, novelty, lifecycle)
- Control: Retrieval Policy (intent routing, tier detection, fallbacks)
- Adapters: Claude Code, OpenCode, Gemini CLI, Copilot CLI
- Adapters: Claude Code, OpenCode, Gemini CLI, Copilot CLI, Codex CLI
- Discovery: ListAgents, GetAgentActivity, agent-filtered topics
- Testing: 29 E2E tests covering all layers + multi-agent + degradation + error paths
- CI/CD: Dedicated E2E job in GitHub Actions, required for PR merge
- Testing: 29 cargo E2E tests + 144 bats CLI tests across 5 CLIs
- CI/CD: Dedicated E2E job + CLI matrix report in GitHub Actions
- Setup: Quickstart, full guide, agent setup docs + 4 wizard-style setup skills
- Benchmarks: perf_bench harness with baseline metrics across all retrieval layers

44,912 LOC Rust across 14 crates. 4 adapter plugins. 4 setup skills. 29 E2E tests. Performance baselines.
44,917 LOC Rust across 14 crates. 5 adapters (4 plugins + 1 adapter). 4 setup skills. 29 E2E tests + 144 bats tests. Cross-CLI matrix report.

## What This Is

Expand Down Expand Up @@ -184,20 +180,22 @@ Agent Memory implements a layered cognitive architecture:
- [x] Performance benchmark harness with ingest, TOC, BM25, vector, topic graph latency — v2.3
- [x] Baseline metrics for all tier/mode combinations with p50/p90/p99 percentiles — v2.3

### Active (v2.4 — Headless CLI Testing)
### Validated (v2.4 - Shipped 2026-03-05)

**Headless CLI Testing (v2.4)**
- [x] Shell-based E2E harness using bats-core with isolated workspaces per test — v2.4
- [x] Claude Code CLI headless tests (30 tests: smoke, hooks, pipeline, negative) — v2.4
- [x] Gemini CLI headless tests (28 tests) — v2.4
- [x] OpenCode CLI headless tests (25 tests) — v2.4
- [x] Copilot CLI headless tests (30 tests) — v2.4
- [x] Codex CLI adapter (commands + skills only, no hooks) — v2.4
- [x] Codex CLI headless tests (26 tests, hook tests skipped with annotation) — v2.4
- [x] Cross-CLI matrix report aggregating JUnit XML from all 5 CLIs — v2.4
- [x] CI integration with artifact retention on failure — v2.4

**Headless Multi-CLI E2E Harness**
- [ ] Codex CLI adapter (new — no hook support, commands/skills only)
- [ ] Shell-based E2E harness with isolated workspaces per test
- [ ] Claude Code CLI headless tests (framework phase — builds isolation, reporting, fixtures)
- [ ] OpenCode CLI headless tests
- [ ] Gemini CLI headless tests
- [ ] Copilot CLI headless tests
- [ ] Codex CLI headless tests (hooks excluded)
- [ ] Matrix reporting: CLI × scenario → pass/fail/skipped
- [ ] CI integration with artifact retention on failure
### Active

**Deferred**
**Deferred / Future**
- Cross-project unified memory
- Semantic deduplication

Expand Down Expand Up @@ -282,11 +280,13 @@ CLI client and agent skill query the daemon. Agent receives TOC navigation tools
| Wizard-style setup skills | Confirm before edits, verification-only commands | ✓ Validated v2.3 |
| perf_bench as binary | Standalone binary in e2e-tests crate; not unit tests | ✓ Validated v2.3 |
| Baseline JSON with thresholds | warning/severe thresholds per step for regression detection | ✓ Validated v2.3 |
| Shell-first E2E harness | Fits CLI testing model; Python/Bun for validation only | — v2.4 |
| Real CLI processes | Spawn actual CLIs headless, not simulated behavior | — v2.4 |
| One phase per CLI | Each CLI gets own harness phase; Claude Code first builds framework | — v2.4 |
| Keep both test layers | Existing cargo E2E tests stay; CLI harness is separate layer | — v2.4 |
| Codex adapter (no hooks) | Codex lacks hook support; skip hook-dependent tests | — v2.4 |
| Shell-first E2E harness | Fits CLI testing model; bats-core 1.12 | ✓ Validated v2.4 |
| Real CLI processes | Spawn actual CLIs headless, not simulated behavior | ✓ Validated v2.4 |
| One phase per CLI | Each CLI gets own harness phase; Claude Code first builds framework | ✓ Validated v2.4 |
| Keep both test layers | Existing cargo E2E tests stay; CLI harness is separate layer | ✓ Validated v2.4 |
| Codex adapter (no hooks) | Codex lacks hook support; skip hook-dependent tests | ✓ Validated v2.4 |
| Direct CchEvent ingest for hookless CLIs | OpenCode/Codex use pre-translated events for pipeline tests | ✓ Validated v2.4 |
| Cross-CLI matrix report | Python3 xml.etree parses JUnit XML; worst-case merge for multi-OS | ✓ Validated v2.4 |

---
*Last updated: 2026-02-22 after v2.4 milestone start*
*Last updated: 2026-03-05 after v2.4 milestone complete*
100 changes: 16 additions & 84 deletions .planning/ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
- ✅ **v2.1 Multi-Agent Ecosystem** — Phases 18-23 (shipped 2026-02-10)
- ✅ **v2.2 Production Hardening** — Phases 24-27 (shipped 2026-02-11)
- ✅ **v2.3 Install & Setup Experience** — Phases 28-29 (shipped 2026-02-12)
- 🚧 **v2.4 Headless CLI Testing** — Phases 30-34 (in progress)
- **v2.4 Headless CLI Testing** — Phases 30-34 (shipped 2026-03-05)

## Phases

Expand Down Expand Up @@ -80,86 +80,18 @@ See: `.planning/milestones/v2.3-ROADMAP.md`

</details>

### v2.4 Headless CLI Testing (In Progress)

**Milestone Goal:** Build a shell-based E2E test harness that spawns real CLI processes in headless mode, validating integration behavior across 5 AI coding CLIs with isolated workspaces and matrix reporting.

- [x] **Phase 30: Claude Code CLI Harness** - Build bats-core framework + all Claude Code headless tests
- [x] **Phase 31: Gemini CLI Tests** - Apply harness to Gemini CLI with JSON stdin hooks
- [x] **Phase 32: OpenCode CLI Tests** - Apply harness to OpenCode CLI with headless quirk handling
- [ ] **Phase 33: Copilot CLI Tests** - Apply harness to Copilot CLI with session ID synthesis
- [ ] **Phase 34: Codex CLI Adapter + Tests + Matrix Report** - New adapter, hook-excluded tests, cross-CLI matrix

## Phase Details

### Phase 30: Claude Code CLI Harness
**Goal**: Developers can run isolated shell-based E2E tests for Claude Code that validate the full hook-to-query pipeline, with reusable framework infrastructure for all subsequent CLI phases
**Depends on**: Phase 29 (v2.3 complete)
**Requirements**: HARN-01, HARN-02, HARN-03, HARN-04, HARN-05, HARN-06, HARN-07, CLDE-01, CLDE-02, CLDE-03, CLDE-04
**Success Criteria** (what must be TRUE):
1. Running `bats tests/cli/claude-code/` executes all Claude Code tests in isolated temp workspaces, each with its own daemon on an OS-assigned port
2. Tests that require `claude` binary skip gracefully with informative message when binary is not installed
3. Claude Code hook fires produce events visible via gRPC query in the same test workspace
4. JUnit XML report is generated and CI matrix job uploads failure artifacts (logs, workspace tarballs)
5. A `tests/cli/lib/common.bash` library exists that other CLI test phases can source (via `load ../lib/common`) for workspace setup, daemon lifecycle, and CLI wrappers
**Plans:** 6 plans
Plans:
- [x] 30-01-PLAN.md — Common helper library (common.bash + cli_wrappers.bash) + workspace/daemon lifecycle
- [x] 30-02-PLAN.md — Fixture JSON payloads + e2e-cli.yml CI workflow with 5-CLI matrix
- [x] 30-03-PLAN.md — Smoke tests + hook capture tests (all event types via stdin pipe)
- [x] 30-04-PLAN.md — E2E pipeline tests + negative tests (daemon down, malformed, timeout)
- [x] 30-05-PLAN.md — Fix memory-ingest MEMORY_DAEMON_ADDR env var support
- [x] 30-06-PLAN.md — Fix hooks.bats Layer 2 assertions + ROADMAP path correction

### Phase 31: Gemini CLI Tests
**Goal**: Developers can run isolated shell-based E2E tests for Gemini CLI that validate hook capture and the full ingest-to-query pipeline
**Depends on**: Phase 30 (framework)
**Requirements**: GEMI-01, GEMI-02, GEMI-03, GEMI-04
**Success Criteria** (what must be TRUE):
1. Running `bats tests/cli/gemini/` executes all Gemini tests in isolated workspaces, reusing Phase 30 common helpers
2. Gemini CLI binary detection and graceful skip works when `gemini` is not installed
3. Gemini hook handler correctly captures events with agent field set to "gemini" and events are queryable via gRPC
4. Negative tests verify daemon-down and malformed-input handling without test failures leaking
**Plans:** 2 plans
Plans:
- [x] 31-01-PLAN.md — Gemini fixtures + smoke.bats + hooks.bats (GEMI-01, GEMI-02)
- [x] 31-02-PLAN.md — pipeline.bats + negative.bats (GEMI-03, GEMI-04)

### Phase 32: OpenCode CLI Tests
**Goal**: Developers can run isolated shell-based E2E tests for OpenCode CLI, handling its less mature headless mode with appropriate skip/warn patterns
**Depends on**: Phase 30 (framework)
**Requirements**: OPEN-01, OPEN-02, OPEN-03, OPEN-04
**Success Criteria** (what must be TRUE):
1. Running `bats tests/cli/opencode/` executes all OpenCode tests in isolated workspaces, reusing Phase 30 common helpers
2. OpenCode invocation uses `opencode run --format json` and timeout guards prevent hangs from headless mode quirks
3. OpenCode hook capture produces events with agent field "opencode" queryable via gRPC pipeline test
4. Negative tests cover daemon-down and timeout scenarios specific to OpenCode's headless behavior
**Plans:** 2 plans
Plans:
- [ ] 32-01-PLAN.md — OpenCode fixtures + run_opencode wrapper + smoke.bats + hooks.bats (OPEN-01, OPEN-02)
- [ ] 32-02-PLAN.md — pipeline.bats + negative.bats (OPEN-03, OPEN-04)

### Phase 33: Copilot CLI Tests
**Goal**: Developers can run isolated shell-based E2E tests for Copilot CLI that validate session ID synthesis and the hook-to-query pipeline
**Depends on**: Phase 30 (framework)
**Requirements**: CPLT-01, CPLT-02, CPLT-03, CPLT-04
**Success Criteria** (what must be TRUE):
1. Running `bats tests/cli/copilot/` executes all Copilot tests in isolated workspaces, reusing Phase 30 common helpers
2. Copilot binary detection uses correct binary name and `--yes --allow-all-tools` prevents interactive prompts
3. Copilot session ID synthesis produces deterministic session IDs from workspace context, verified in captured events
4. Negative tests verify daemon-down and malformed-input handling for Copilot-specific edge cases
**Plans**: TBD

### Phase 34: Codex CLI Adapter + Tests + Matrix Report
**Goal**: Codex CLI adapter exists with commands and skills (no hooks), Codex headless tests pass with hook tests skipped, and a cross-CLI matrix report aggregates results from all 5 CLIs
**Depends on**: Phase 30 (framework), Phases 31-33 (all CLI tests for matrix)
**Requirements**: CDEX-01, CDEX-02, CDEX-03, CDEX-04, CDEX-05
**Success Criteria** (what must be TRUE):
1. A Codex CLI adapter directory exists under `adapters/codex-cli/` with commands, skills, and sandbox workaround documentation (no hook handler)
2. Running `bats tests/cli/codex/` executes Codex tests with hook-dependent scenarios explicitly skipped and annotated
3. Codex command invocation tests use `codex exec -q --full-auto` with timeout guards
4. A matrix report script aggregates JUnit XML from all 5 CLIs into a CLI x scenario pass/fail/skipped summary viewable in CI
**Plans**: TBD
<details>
<summary>v2.4 Headless CLI Testing (Phases 30-34) -- SHIPPED 2026-03-05</summary>

- [x] Phase 30: Claude Code CLI Harness (6/6 plans) -- completed 2026-02-25
- [x] Phase 31: Gemini CLI Tests (2/2 plans) -- completed 2026-02-25
- [x] Phase 32: OpenCode CLI Tests (2/2 plans) -- completed 2026-02-26
- [x] Phase 33: Copilot CLI Tests (2/2 plans) -- completed 2026-03-05
- [x] Phase 34: Codex CLI Adapter + Tests + Matrix Report (3/3 plans) -- completed 2026-03-05

See: `.planning/milestones/v2.4-ROADMAP.md`

</details>

## Progress

Expand All @@ -173,9 +105,9 @@ Plans:
| 30 | v2.4 | 6/6 | Complete | 2026-02-25 |
| 31 | v2.4 | 2/2 | Complete | 2026-02-25 |
| 32 | v2.4 | 2/2 | Complete | 2026-02-26 |
| 33 | v2.4 | 0/TBD | Not started | - |
| 34 | v2.4 | 0/TBD | Not started | - |
| 33 | v2.4 | 2/2 | Complete | 2026-03-05 |
| 34 | v2.4 | 3/3 | Complete | 2026-03-05 |

---

*Updated: 2026-02-26 after Phase 32 execution complete*
*Updated: 2026-03-05 after v2.4 milestone complete*
40 changes: 27 additions & 13 deletions .planning/STATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,21 @@

## Project Reference

See: .planning/PROJECT.md (updated 2026-02-22)
See: .planning/PROJECT.md (updated 2026-03-05)

**Core value:** Agent can answer "what were we talking about last week?" without scanning everything
**Current focus:** v2.4 Headless CLI Testing — Phase 33 (Copilot CLI Tests)
**Current focus:** v2.4 complete — planning next milestone

## Current Position

Milestone: v2.4 Headless CLI Testing
Phase: 32 of 34 (OpenCode CLI Tests) — COMPLETE
**Current Plan:** 2/2
**Total Plans in Phase:** 2
**Status:** Phase complete — verified
**Last Activity:** 2026-02-26
Phase: 34 of 34 (Codex CLI Adapter + Tests + Matrix Report) — COMPLETE
**Current Plan:** 3/3
**Total Plans in Phase:** 3
**Status:** v2.4 milestone complete
**Last Activity:** 2026-03-05

**Progress:** [████████░░] 84%
**Progress:** [██████████] 100%

## Decisions

Expand Down Expand Up @@ -45,6 +45,13 @@ Phase: 32 of 34 (OpenCode CLI Tests) — COMPLETE
- [Phase 32-01]: Direct CchEvent ingest pattern for OpenCode (TypeScript plugin not testable from shell)
- [Phase 32-01]: Agent field test verifies ingest acceptance + gRPC storage (query display doesn't show agent metadata)
- [Phase 32]: Negative tests cover memory-ingest fail-open only for OpenCode (TypeScript plugin not shell-testable)
- [Phase 33-01]: Fixed jq -n to jq -nc in Copilot memory-capture.sh (multi-line JSON broke memory-ingest read_line)
- [Phase 33-02]: Copilot hook negative tests assert exit 0 only (no stdout) unlike Gemini which asserts {}
- [Phase 34-03]: Python3 xml.etree for JUnit XML parsing (no hand-rolled XML parsing)
- [Phase 34-03]: Worst-case merge for multi-OS results (FAIL > SKIP > PASS)
- [Phase 34]: [Phase 34-01]: Codex adapter in adapters/ (not plugins/) -- no hooks, skills only
- [Phase 34-02]: Pipeline tests mirror copilot pattern with agent=codex substitution
- [Phase 34-02]: Hook-skipped negative tests annotate GitHub Discussion #2150

## Blockers

Expand All @@ -68,6 +75,11 @@ Phase: 32 of 34 (OpenCode CLI Tests) — COMPLETE
| Phase 31-02 P02 | 3min | 2 tasks | 2 files |
| Phase 32-01 | 4min | 2 tasks | 9 files |
| Phase 32-02 PP02 | 3min | 2 tasks | 2 files |
| Phase 33-01 P01 | 4min | 2 tasks | 10 files |
| Phase 33-02 P02 | 2min | 2 tasks | 2 files |
| Phase 34-03 P03 | 1min | 2 tasks | 2 files |
| Phase 34-01 PP01 | 7min | 2 tasks | 22 files |
| Phase 34-02 PPP02 | 2min | 2 tasks | 2 files |

## Milestone History

Expand All @@ -78,18 +90,20 @@ See: .planning/MILESTONES.md for complete history
- v2.1 Multi-Agent Ecosystem: Shipped 2026-02-10 (6 phases, 22 plans)
- v2.2 Production Hardening: Shipped 2026-02-11 (4 phases, 10 plans)
- v2.3 Install & Setup Experience: Shipped 2026-02-12 (2 phases, 2 plans)
- v2.4 Headless CLI Testing: Shipped 2026-03-05 (5 phases, 15 plans)

## Cumulative Stats

- 44,912 LOC Rust across 14 crates
- 4 adapter plugins (Claude Code, OpenCode, Gemini CLI, Copilot CLI)
- 5 adapter plugins (Claude Code, OpenCode, Gemini CLI, Copilot CLI, Codex CLI)
- 4 setup skills (install, configure, verify, troubleshoot)
- 29 E2E tests, dedicated CI job
- 29 E2E tests + bats CLI tests across 5 CLIs, dedicated CI jobs
- Cross-CLI matrix report in CI step summary
- Performance benchmark harness with baselines
- 31 phases, 98 plans across 5 milestones
- 34 phases, 106 plans across 5 milestones

## Session Continuity

**Last Session:** 2026-02-26T07:03:15.553Z
**Stopped At:** Completed 32-02-PLAN.md -- 25/25 OpenCode tests passing (8 smoke + 7 hooks + 5 pipeline + 5 negative)
**Last Session:** 2026-03-05
**Stopped At:** Phase 34 complete and verified — all 3 plans executed, 12/12 must-haves verified
**Resume File:** None
Original file line number Diff line number Diff line change
@@ -1,3 +1,12 @@
# Requirements Archive: v2.4 Headless CLI Testing

**Archived:** 2026-03-05
**Status:** SHIPPED

For current requirements, see `.planning/REQUIREMENTS.md`.

---

# Requirements: Agent Memory v2.4

**Defined:** 2026-02-22
Expand Down
Loading
Loading