Skip to content

Release: v3.1.1 - #324

Merged
harshsinghmp merged 11 commits into
mainfrom
release/v3.1.1
Oct 24, 2026
Merged

harshsinghmp merged 11 commits into
mainfrom
release/v3.1.1

Conversation

@harshsinghmp

Copy link
Copy Markdown
Owner

Summary

SemVer patch release carrying the two post-release defect fixes from dev:

Both trains landed on dev with RESULT: LANDED receipts (e30a1b7, d3a8f6b); closeout at 82d290c.

What's here (3 files, +24/−2)

  • package.json: 3.1.0 → 3.1.1
  • CHANGELOG.md: stamped [3.1.1] block (Summary, two Fixed entries with tickets/PR links/receipts, compare URL v3.1.0...v3.1.1)
  • claims.json: regenerated — the published-claims gate caught the version bump (its designed job) and the artifact now tracks package.json

No other code changes since dev @ 82d290c.

Verification Evidence

  • bun test — 1408 pass / 0 fail across 213 files (on this release tree)
  • tsc --noEmit clean · bun run build clean
  • claims:check up to date (post-regen) · docs:check 152 links / 108 files resolve · secret scan clean
  • check:landed:pr gate to be re-run after CI; tag v3.1.1 + GitHub release on merge

Governance disclosure

The main branch-guard ruleset requires one approving review; per the v3.1.0 precedent this release merge uses --admin on the principal's order (the test check must be green first).

harshsinghmp and others added 11 commits October 24, 2026 17:18
- Why: the release-state facts now exist on the remote — PR #318 merged
  at c5a141d, tag v3.1.0 pushed, GitHub release published, the back-merge
  brought the main-only showreel hotfix home — but the handoff still
  described the pre-release state ("cut the release" as the next step)
  and the landed-waves ledger had no release line. The closeout DOX pass
  runs after the gate by design, so these claims are written only now.
- What: HANDOFF.md rewritten for the post-release state — release
  receipts with the branch-guard governance disclosure (admin merge
  bypassed the 1-review requirement on the principal's order; disclosed
  here and in current.md), next steps pointing at #313/#314 and the
  parked spec PRs, Verify block updated to this session's numbers.
  current.md gains a release bullet on the landed-waves ledger, including
  the quoted gate evidence, and a numbering correction: the repo's own
  ledger tops out at Wave 26 (the landing gate); the inherited session
  summary's "Wave 27" does not exist.
- Verification: quoted from this session — bun test 1393 pass / 0 fail
  (211 files) on both the release branch and the back-merged dev tree;
  PR #318 CI test pass at 3m14s; check:landed → RESULT: LANDED at
  dev == origin/dev == c5a141d; the pre-review gate on this branch runs
  on the PR (branch pushed, PR open, checks green).
docs(context): record the v3.1.0 release and refresh the handoff
…tion branch

- Why: two Release Invariants were factually off. Nothing required a
  version bump to regenerate derived artifacts, so bumping the version
  failed CI's claims:check with no documented cause — this was hit live
  on the v3.1.0 cut (claims:check failed within seconds of the bump and
  the branch needed a regeneration commit). And the standard still named
  `master` as the production branch; this repository's production branch
  is `main`, and the whole release pipeline that actually ran (v3.1.0,
  PRs #316–#319) operates on dev/main.
- What: .agents/standards/git-workflow.md Release Invariants gains one
  bullet — any version bump runs `bun run claims:generate` in the same
  commit, because claims.json embeds the package version and CI runs
  claims:check on drift — and the staging invariant now says merge to
  `main` instead of `master`.
- Verification: bun run docs:check — 150 relative links across 102
  markdown files all resolve (link audit covers this file); the rule text
  matches the behavior CI already enforces (claims:check in the suite);
  docs-only change, no code touched, levitated through staging by
  explicit-path add after git status review.
…resh

docs(standards): pin the derived-artifact rule and correct the production branch
#313)

Why: conflicted memories (contradiction-engine verdicts — known potential
falsehoods) were only rank-discounted (-0.8), never filtered, so they still
surfaced into recall results, ranked candidates (kept:high_relevance), fused
muse context (relevant_memories, confident_answers, route manifests, code
anchors) and FTS store queries without a badge (#313 / T-405).

What: one shared includeConflicted opt-in honored at every consumer gate,
defaulting to exclusion — SearchOptions cascade (ContextQueryOptions →
UnifiedSearchOptions); queryContext lifecycle gate (status-scoped guard +
cache-key discrimination); FTS hidden-gate + overfetch connective (armed iff
any post-fetch hide-gate stays active — OR, not AND); vector passesRowFilter
+ engine hybrid passthrough; ranking candidate veto; muse context pool choke
point, anchor/route lens strips, constraint projection and withheld notice;
MCP include_conflicted on both search/memory_recall schemas + auto-branch
mapping; CLI --include-conflicted mirror. Temporal/as_of path unchanged
(state-at-the-time semantics). Status-scoped audit queries preserved on FTS
and queryContext paths. Golden recall fixture untouched (corpus carries zero
conflicted entries); tests-first discipline, RED receipts in ledger.

Verification: bun test 1400 pass / 0 fail across 212 files (+7 tests);
tsc --noEmit clean; build clean; claims.json + derived docs regenerated
(1398→1400); Fresh Critic verdict 9.5/10 with mutation-verified overfetch
test (reverted connective in isolation → exactly the new test fails).
fix(retrieval): withhold conflicted memories from prompt-serving paths (#313)
Why: `memory health --project ALPHA` against a store holding `alpha`
returned a silent empty report labelled with the caller's casing
(#314 / T-406) — and the MCP `muse_health` tool and Studio
`/api/health?project=` endpoint shared the silent-empty behavior, so
scripts, agents and dashboards could not tell a typo from a store with
no data.

What: one resolution owner — `resolveProjectName` + `listProjectNames` +
`formatAvailable` in `src/health/resolve.ts` (exact match wins; unique
case-insensitive match returns the store's spelling; unknown or ambiguous
stays unresolved). All three surfaces resolve first and fail loud second:
CLI exits 1 with the requested name echoed plus the available list and a
stderr note when canonical differs from the requested form (--json stdout
stays pure JSON); MCP `muse_health` returns an isError result; Studio
answers 404 with the same JSON error. `evaluateProjectHealth`/
`listForProject` stay pure exact-canonical reporters — no store rewrite,
no gate change; the existing scope tests pass untouched (tests-first RED
receipts in the iteration ledger; helper-first disposition noted there).

Verification: bun test 1408 pass / 0 fail across 213 files (+8 tests);
RED receipts: 2 pass / 6 fail pre-wiring, independently reproduced by the
Fresh Critic (reverted wiring, restored byte-identical); tsc --noEmit,
build, claims/docs artifacts current; secret scan clean; golden recall
fixtures untouched (no retrieval change). Fresh Critic final: 9/10,
integrate confirmed (note-stream verified by empirical stdout probe).
…oject

fix(health): resolve project names case-insensitively, fail loud (#314)
Why: both tickets (#313, #314) are merged into `dev` (PR #321 at `e30a1b7`,
PR #322 at `d3a8f6b`) but the DOX tree still described them as open
`Next Up` items with stale line references.

What: `.agents/context/ticket-plan.md` stamps T-405/T-406 landed with the
merge SHAs, receipts (suite 1408/0 across 213 files, gates, critic
verdicts 9.5/10 and 9/10) and the deliberate decisions; `current.md` drops
the two landed bullets from *Next Up* and records the joint
*Recently Landed* block including the follow-up ledger (ambiguous-case
wording, Studio client 404 echo, silent-casing fan-out, wikilink hop-gate,
get_context schema mismatch, hybrid status plumbing, superseded-gate
guard); `HANDOFF.md` is refreshed with the two fix trains, the
backlog priority order and the optional v3.1.1 release note.

Verification: doc-only change; `bun run docs:check` (all relative links
resolve) and `bun run check:landed` re-quoted at closeout; no code touched.
docs(context): close out the T-405/T-406 fix trains
Why: the two post-release defect fixes (T-405/#313 conflicted memories
injected into prompts; T-406/#314 case-sensitive silent project scoping)
are landed on `dev` (PR #321 at e30a1b7, PR #322 at d3a8f6b, closeout #323
at 82d290c) and carry to `main` as a SemVer patch.

What: bump package.json 3.1.0 -> 3.1.1 and stamp CHANGELOG.md — the [3.1.1]
block with Summary + two Fixed entries (both citing tickets, PR links,
quality receipts and the deliberate decisions), compare URL
v3.1.0...v3.1.1. No code changes on this branch.

Verification: bun test 1408 pass / 0 fail across 213 files on this tree;
tsc --noEmit clean; build clean; claims:check + docs:check current;
secret scan clean; release notes derived from the stamped changelog.
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