Skip to content

Epic17 - #5

Merged
lunarpulse merged 21 commits into
mainfrom
epic17
Jul 23, 2026
Merged

Epic17#5
lunarpulse merged 21 commits into
mainfrom
epic17

Conversation

@lunarpulse

Copy link
Copy Markdown
Owner

Epic 17: Orchestration R2 — Cross-process Durability & Signed Protocol — SPECCED 2026-07-08, PRE-SPLIT 2026-07-09 (outline NEW 2026-06-13; R2 tier; epics.md §"Epic 17"). Full ACs authored via /bmad-create-epics-and-stories, seeded from epic17-r2-seed-df-cr-14-triage-2026-07-08.md §2 (16 R2-activate DF-CR-14 items). Allocated FR144-147 + NFR70 into prd.md; folds FR129→17.2b/FR131→17.3/FR132→17.1; reuses FR46/NFR30 (17.4a/17.4b). Retro AI-14.1 authoring lens + AI-14.3 expansion tag applied. 2026-07-09: AI-14.2 precedent spike DONE (ai-14.2-external-integration-test-precedent-spike-2026-07-09.md); 2 AI-14.3 pre-splits applied → 17.2→{17.2a journal/recovery, 17.2b supervisor/concurrency}, 17.4→{17.4a AgentCard discovery, 17.4b task-lifecycle} — NET 7 STORIES. Dep graph: roots {17.1 ∥ 17.2a ∥ 17.3 ∥ 17.4a} → {17.2b ∥ 17.4b} → 17.5. Depends on Epic 14 R1 (closed 18/18; NFR68 hooks make it additive). Rows stay backlog — Epic 17 is NEXT in the roadmap (R2, ahead of Epic 15) but not yet scheduled/in-progress. 17-4a/17-4b = relocated A2A client (orig. 14.1). Enabling task to file: expose a structured test-observable AppEvent/telemetry stream (the event-stream-poll() human-smoke antidote depends on it). 2026-07-19 COURSE CORRECTION: 17-5 PRE-SPLIT → 17-5a (Tasks codec + node mapping + lifecycle + mcp CI lane; ready-for-dev) + 17-5b (elicitation + durable waiting; backlog). FIFTH AI-14.3 pre-split, first fired by /bmad-create-story. Epic 17: 9 → 10 stories. No FR change, MVP unchanged. See sprint-change-proposal-2026-07-19.md.

…e-break

Two independent CI failures on the Epic 17 PR, both green locally only for
environment reasons:

- adapters::mcp::tasks: the resume-transcript round-trip test read the pinned
  capture via `../_bmad-output/.../transcripts/22_tasks_update_resume.request.json`,
  which resolves only in the dev-workspace layout. A standalone CI checkout has
  no `_bmad-output/` parent -> No such file. Vendor the capture byte-identical
  into `tests/fixtures/mcp/` (the a2a-CASSETTE pattern) and read it via
  CARGO_MANIFEST_DIR. Broke 4 lanes (Check/MCP/A2A/Skills): `mcp` is a default
  feature so the test runs under every `--lib` lane.

- adapters::vector_search::fusion::fuse_rank: the key-ascending tie-break called
  `.as_str()` on a `&(u64, f64)` tuple -- a compile error under
  `--features vector-search` (introduced 17.1a / 31b4911), never compiled by the
  default `cargo test --lib` lane. Compare the key `a.0` directly, matching the
  documented "ties broken by key ascending".

Verified: `cargo test --lib` 2635/0; `cargo test --features vector-search --test
vector_search` 9/0; fusion 7/0; fmt clean.
`tests/integration_skill_eval_harness.rs` is `#![cfg(feature = "meta-search")]`
and wired into no CI lane, so these were latent -- but both would panic on a
missing path if the target is ever run in a standalone checkout (the
`_bmad-output/` planning tree is a separate repo, absent in CI):

- test_zzz_finalize_eval_report wrote `9-7b-eval-report.json` under
  `../_bmad-output/`. Deliver there when the planning tree exists (dev
  workspace); else fall back to CARGO_TARGET_TMPDIR so the round-trip
  assertion still runs hermetically.

- test_holdout_sha256_matches_sprint_status read `../_bmad-output/sprint-status.yaml`.
  Its comment claimed `#[ignore]`-gating that was never applied, and the SHA is
  now recorded and matches, so ignoring it would wrongly disable a working
  drift-check. Guard on the tracker's existence instead: run the real
  cross-check in the dev workspace, skip visibly (println) in a standalone
  checkout.

No CI-lane behaviour changes (target is meta-search-gated and unwired).
Verified under --features meta-search: both tests pass in-workspace;
clippy + fmt clean.
@lunarpulse
lunarpulse merged commit 952ebf6 into main Jul 23, 2026
10 checks passed
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