Skip to content
Open
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
02aa7f0
docs+test: rename federation sibling Charter -> Plainweave (live refs)
tachyon-beep Jun 24, 2026
a211fda
plan: verification-freshness (Rung 2 Track B) implementation plan
tachyon-beep Jun 25, 2026
8d316a7
plan: address review v1 (4 blockers, 1 high, 5 medium) — verification…
tachyon-beep Jun 25, 2026
9b4dfa1
plan: address review v2 (4 high, 5 medium) — verification-freshness
tachyon-beep Jun 25, 2026
b1236af
plan: review v3 APPROVED (0 blocker/high/medium); fold in GV-VF-1 nex…
tachyon-beep Jun 25, 2026
688531d
feat(store): v4 verification_events table + key-id-filtered change ac…
tachyon-beep Jun 25, 2026
f24bc58
refactor(store): scope v4 recovery to presence-floor reconcile path
tachyon-beep Jun 25, 2026
85b992d
feat(git): is_ancestor / commits_between / resolve_commit reachabilit…
tachyon-beep Jun 25, 2026
60d5fde
feat(verification): pure compose_verification_freshness (fresh/stale/…
tachyon-beep Jun 25, 2026
51e29ef
test(verification): lock unavailable/stale contract + cover earlier-u…
tachyon-beep Jun 25, 2026
998b3b7
feat: verify-record verb (CLI + MCP, 2nd mutating tool)
tachyon-beep Jun 25, 2026
e87df23
docs: correct verify-record enrichment defaults; pin empty-kind error…
tachyon-beep Jun 25, 2026
fc6f369
feat(reverify): advisory per-item verification block + summary + stal…
tachyon-beep Jun 25, 2026
4511b6a
test: prove same-depth stale-first tiebreak in reverify ordering
tachyon-beep Jun 25, 2026
9b7ec5b
test(contracts): GV-VF-1 locks verification-freshness honesty + never…
tachyon-beep Jun 25, 2026
763dd8a
test(contracts): fix GV-VF-1 vector count (19) + lock honesty-meta on…
tachyon-beep Jun 25, 2026
5e593b7
docs(changelog): verification freshness (Rung 2 Track B)
tachyon-beep Jun 25, 2026
5503031
fix: four review follow-ups before merge (latent crash + doc + tests …
tachyon-beep Jun 25, 2026
b68f0c4
fix(verification): stale decay uses tightest git cover, not recording…
tachyon-beep Jun 25, 2026
ddba775
fix(snapshot): preserve prior FULL/DELTA when loomweave absent at rec…
tachyon-beep Jun 25, 2026
3f6f652
test(contracts): carry enrichment_reasons in frozen-envelope fixtures…
tachyon-beep Jun 25, 2026
7683407
fix(honesty): weft-reason invariant survives python -O (assert -> Val…
tachyon-beep Jun 25, 2026
9d21d0d
site: member-specific deconfliction-not-security disclaimer + Charter…
tachyon-beep Jun 26, 2026
fe9d51b
product: 1.2.0 follow-up burndown (fc09bdeddd + d88e223731 closed); r…
tachyon-beep Jun 26, 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 CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,36 @@ The cross-member MCP seam contracts are versioned independently as
`warpline.<contract>.v1` and frozen at the federation clean-break launch; a `v2`
is a new contract URI, never a mutation of `v1`.

## [Unreleased]

### Added
- **Verification freshness (Rung 2, Track B).** The reverify worklist now carries
an advisory per-item `verification` block (`fresh` / `stale` / `unverified` /
`unavailable`) with a trust-decay signal, plus a `verification_summary` rollup —
answering "what changed since it was last proven good." Sourced from warpline's
own gate result via a new mutating verb `verify-record` (CLI) /
`warpline_verification_record` (MCP), the 2nd local-only mutating tool. Advisory
and enrich-only: it annotates and re-sorts (stale-of-trust first) but NEVER
filters an item, and NEVER gates. Sibling-sourced verification (wardline/
filigree/legis) remains honest-absent RESERVED. New schema v4
(`verification_events`); golden vector `GV-VF-1`. The frozen `warpline.<contract>.v1`
envelope and the closed 6-key enrichment vocab are untouched (verification rides
the reverify-item schema, not the enrichment vocab).

### Fixed
- **Weft-reason honesty invariant now survives `python -O`.** `listing.reason()`
enforced its carrier rule (class-membership, and "every non-clean carrier MUST
carry both cause and fix") with bare `assert`s, which `-O` strips — so under
`-O` a hollow `{reason_class: "disabled"}` triple with no cause/fix could ship,
the exact unexplained-absence the honesty doctrine forbids. Promoted both checks
to raised `ValueError`, and hardened `build_envelope` to reject a non-clean
`enrichment_reasons` triple missing cause/fix (closing the parallel
hand-built-via-kwarg path, which bypassed `reason()` even without `-O`).
`sei_reason()` is now non-Optional — it raises on an out-of-vocab state, which
removed four `-O`-strippable narrowing asserts at its call sites. Internal
hardening only; the frozen `warpline.<contract>.v1` envelope and the closed
enrichment vocab are unchanged.

## [1.2.0] - 2026-06-24

Minor release: spine hardening. Snapshot capture is now correct-by-construction and
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ never decides whether a change is allowed.** This is deconfliction tooling, not
security. A warpline answer is an enhancement you can act on or ignore — never a
verdict you must clear. It **consumes** Loomweave SEI (it never mints identity) and
**feeds** advisory change-impact facts to governance-style surfaces such as
Legis/Charter, which run their own policy; warpline supplies the facts and never
Legis/Plainweave, which run their own policy; warpline supplies the facts and never
makes the call.

The product front door lives at
Expand Down
2 changes: 1 addition & 1 deletion docs/concepts/advisory-not-gating.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ gate-like "all clear" into a tool that has no business issuing one.
## How this shapes what warpline feeds the federation

warpline feeds advisory change-impact facts to governance-style surfaces (such as
Legis or a Charter layer): *what changed* and *what is downstream-affected*. Those
Legis or a Plainweave layer): *what changed* and *what is downstream-affected*. Those
surfaces may have their own policy and their own gates — that is their authority.
warpline supplies the facts; it never makes the call. The boundary is in
[Federation](../federation.md).
2 changes: 1 addition & 1 deletion docs/federation.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ is `present`.
## What warpline feeds the federation (outbound)

warpline feeds **advisory change-impact facts** to governance-style surfaces (Legis,
or a Charter layer): *what changed* and *what is downstream-affected*. Those
or a Plainweave layer): *what changed* and *what is downstream-affected*. Those
surfaces may run their own policy and their own gates — that is their authority.
warpline supplies the facts and never makes the call.

Expand Down
2 changes: 1 addition & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ pairwise with its siblings, always enrich-only:
- It **consumes** Loomweave SEI resolution and dated structural edges (the only
proven, frozen inbound seam) and Filigree work-state links.
- It **feeds** advisory change-impact facts to governance-style surfaces
(Legis/Charter): what changed and what is downstream-affected. It never decides
(Legis/Plainweave): what changed and what is downstream-affected. It never decides
whether the change is allowed.
- It **degrades honestly** when a sibling is absent — the answer reports
`unavailable`, never an implied "clean" or "allowed" state.
Expand Down
8 changes: 4 additions & 4 deletions docs/integration/post-admission-consumer-tickets.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@ Do not patch sibling repos from Warpline delivery work.
- Boundary: Loomweave owns current structure and SEI. Warpline supplies temporal history only.
- Acceptance: Loomweave still answers current graph queries from Loomweave storage; Warpline absence disables only churn/recency enrichment.

## Charter
## Plainweave

- Goal: consume Warpline reverify/affected-set facts when Charter impact analysis lands.
- Boundary: Charter owns obligations, baselines, verification evidence, and requirement impact. Warpline supplies structural/temporal affected entities.
- Acceptance: Charter impact reports still run from local trace links when Warpline is absent.
- Goal: consume Warpline reverify/affected-set facts when Plainweave impact analysis lands.
- Boundary: Plainweave owns obligations, baselines, verification evidence, and requirement impact. Warpline supplies structural/temporal affected entities.
- Acceptance: Plainweave impact reports still run from local trace links when Warpline is absent.

## Legis

Expand Down
127 changes: 77 additions & 50 deletions docs/product/current-state.md
Original file line number Diff line number Diff line change
@@ -1,72 +1,99 @@
# Current State - Warpline

Checkpoint: 2026-06-24 — `main` @ v1.2.0 (spine hardening shipped)
Checkpoint: 2026-06-26 — branch `plan/verification-freshness` (verification-freshness
BUILT but unreleased; not yet merged to `main`)

## The bet right now

**Rung 2 — verification-freshness** (PDR-0005): give warpline a `last_verified` axis,
sourced from its own gate result, so the reverify worklist answers *"changed since
last proven-good"* with a trust-decay signal — advisory, never gates. **Moves** the
**Rung 2 — verification-freshness** (PDR-0005): a `last_verified` axis sourced from
warpline's own gate result, so the reverify worklist answers *"changed since last
proven-good"* with a trust-decay signal — advisory, never gates. **Moves** the
north-star from "reverify since HEAD~1" toward "since last proven-good."

Status: design **spec written, at the review gate**
(`docs/superpowers/specs/2026-06-23-verification-freshness-design.md`, on `main` since
the 1.2.0 merge). Next step: spec sign-off → `/axiom-planning` → build (same
subagent-driven flow as the hardening bet). Not yet filed as a tracker issue.
Status: **BUILT on `plan/verification-freshness`, unreleased.** Track B landed into the
branch across prior sessions — per-item `verification` block
(`fresh`/`stale`/`unverified`/`unavailable`) + a `verification_summary` rollup, a new
mutating verb `verify-record` / `warpline_verification_record` (the 2nd local-only
mutating tool), schema v4 (`verification_events`), and golden vector `GV-VF-1` — and is
recorded in `CHANGELOG.md` [Unreleased]. The frozen `warpline.<contract>.v1` envelope
and the closed 6-key enrichment vocab are untouched (verification rides the
reverify-item schema). Sibling-sourced verification (wardline/filigree/legis) stays
honest-absent RESERVED. The merge + release to `main` is an owner escalation (see below).

> **Reconciliation debt:** this build landed on the branch without an interim
> checkpoint, so there is no acceptance PDR for it yet. When the owner authorizes the
> merge/release, write a PDR-0006-style acceptance record (verdict, review basis,
> reversal trigger).

## Branch / release state

- **`main` = v1.2.0.** Three releases shipped this session (all owner-directed):
**v1.1.2** (post-commit hook hang fix), **v1.1.3** (version-metadata single-sourcing),
**v1.2.0** (spine hardening — correct-by-construction capture + honesty completeness
+ 5th-producer conformance package), the last via a merge after a release-grade
multi-agent review (PDR-0006).
- `plan/spine-hardening` and `release/1.2.0` were deleted (fully merged into `main`).
- Install hygiene: single canonical warpline (uv tool **1.2.0**); the stale pre-rename
`heddle` editable venv was retired.
- **`main` = v1.2.0** (spine hardening; PDR-0006).
- **Working branch = `plan/verification-freshness`** — carries the built Track B plus
the 1.2.0 review-followup burndown (below). Unreleased.
- **Identity (standing requirement):** git/gh identity is **tachyon-beep** (active
account); johnm-dta is logged in but inactive. This session's commits used the
tachyon-beep email — verified before each commit.

## In flight (tracker)

Four review follow-ups (open, none blocking — from the 1.2.0 review):

- `warpline-d7d04243b2` (P2 bug) — SKIPPED snapshot path (loomweave-absent) is
non-atomic and downgrades a usable prior snapshot (pre-existing R3-class).
- `warpline-fc09bdeddd` (P2 task) — contract fixtures + ENVELOPE_KEYS stale (missing
`enrichment_reasons`); **do with/before the hub handover**.
- `warpline-d88e223731` (P3 task) — promote `reason()` cause/fix invariant from
assert → ValueError (survive `python -O`).
- `warpline-17242c627b` (P3 task) — cover the atomic ROLLBACK branch + enforce the
no-open-transaction precondition.

(Plus `warpline-3deba68a62` P4 "Future" placeholder.) The verification-freshness bet
lives in the spec, not yet the tracker.
The PDR-0006 release-grade-review follow-ups, reconciled against the tracker:

- ✅ `warpline-d7d04243b2` (P2 bug) — SKIPPED snapshot non-atomic — **CLOSED** (prior
session; commit ddba775).
- ✅ `warpline-fc09bdeddd` (P2 task) — contract fixtures + ENVELOPE_KEYS missing
`enrichment_reasons` — **CLOSED this session** (commit 3f6f652). The fixture-drift
item meant to land "with the hub handover" is cleared.
- ✅ `warpline-d88e223731` (P3 task) — `reason()` cause/fix invariant assert→ValueError
(survive `python -O`) — **CLOSED this session** (commit 7683407, via an ultracode
multi-agent workflow). Also hardened `build_envelope` (hand-built-triple path) and
made `sei_reason` non-Optional.
- ⏳ `warpline-17242c627b` (P3 task) — cover the atomic ROLLBACK branch + enforce the
no-open-transaction precondition. **OPEN — clean, startable.**
- ⏳ `warpline-9eae3eb86a` (P3 task, filed 2026-06-24) — finish Charter→Plainweave in
the sibling guards + dated evidence (baseline refresh + re-grounding, not a sed).
**OPEN — gated** on the local `plainweave` sibling repo being present.
- `warpline-3deba68a62` (P4) — "Future" placeholder.

Observation `warpline-obs-da4909ac64` (P3): `mcp.py` phantom_sort/phantom_knob guard
uses a bare `assert` (stripped under `-O`) — same class as d88e223731, different module;
scoped out and filed for separate triage (expires 2026-07-09 unless promoted).

## Open questions / blocked-on-owner (escalations)

1. **Deliver the 5th-producer handover to the federation hub** — GS-7 oracle wiring +
glossary freeze (OD-5 resolved-direction; warpline-side package done at
`docs/integration/2026-06-22-warpline-5th-producer-handover.md`). Outward-facing /
sibling — owner's call. The fixture-drift follow-up (`fc09bdeddd`) lands with it.
2. **(deferred)** Promoting `verification` into the frozen closed envelope vocab is a
future glossary/contract-evolution escalation (the v1 bet keeps it as a
reverify-item field — PDR-0005).

*(Escalation #1 from the prior checkpoint — merge to `main` + cut 1.2.0 — is RESOLVED:
owner-directed and shipped this session.)*
1. **Deliver the 5th-producer handover to the federation hub** — outward-facing /
sibling, owner's call. warpline-side package is done
(`docs/integration/2026-06-22-warpline-5th-producer-handover.md`); GS-7 oracle wiring
+ glossary freeze (OD-5 resolved-direction) remain. The fixture-drift follow-up
(`fc09bdeddd`) that was meant to land with it is now **CLOSED**, so the warpline-side
blockers are further reduced.
2. **Merge + release verification-freshness to `main`** — changing public release status
outside this repo is a grant escalation. The branch is built; the cutover (and its
acceptance PDR) is the owner's call.
3. **(deferred)** Promoting `verification` into the frozen closed envelope vocab is a
future glossary/contract-evolution escalation (v1 keeps it a reverify-item field —
PDR-0005).

## What this checkpoint did

- Recorded **PDR-0006** (accept + ship the hardening bet as v1.2.0 after a 14-agent
adversarially-verified review; verdict ship, 0 blockers/majors; defer the
verified-minor findings to tracked follow-ups).
- Roadmap: spine hardening moved out of Now (**shipped in v1.2.0**); verification-
freshness is the sole active Now bet.
- Metrics: 2026-06-24 reading for the 1.2.0 ship + review (all frozen invariants
re-verified; 338 passed; release gate green); 4 follow-ups tracked; no reversal
trigger crossed.
- Recorded this session's **execution** on the PDR-0006 follow-up punch-list: closed
`warpline-fc09bdeddd` (3f6f652) and `warpline-d88e223731` (7683407); filed observation
`warpline-obs-da4909ac64`. **No new PDR** — no product bet was decided, killed, or
reprioritized; this was repo-local acceptance of tracked quality debt, autonomous
under the `vision.md` grant.
- **Reconciled a stale workspace** — the prior brief (2026-06-24, `main` @ v1.2.0)
predated the verification-freshness build now on `plan/verification-freshness`;
current-state now reflects the branch, the built-but-unreleased bet, and the closed
follow-ups (with the reconciliation-debt flag above).
- **metrics.md** — 2026-06-26 reading: quality-debt burndown (3 of 4 original 1.2.0
follow-ups closed); honesty guardrail strengthened (weft-reason invariant survives
`-O`); no reversal trigger crossed.
- **roadmap.md** — untouched (no horizon change; verification-freshness is still the Now
bet).

## Next session starts here

Pick up the **verification-freshness spec review** → `/axiom-planning` to generate the
implementation plan → build. Escalation #1 (hub handover) is waiting whenever the
owner wants to act on it.
Two clean pickups, owner's choice: (a) `warpline-17242c627b` (atomic ROLLBACK coverage
+ precondition guard) — the last ungated 1.2.0 follow-up; or (b) act on escalation #1/#2
(hub handover, or merge+release verification-freshness — and write its acceptance PDR
then). `warpline-9eae3eb86a` stays blocked until the local `plainweave` sibling repo is
present.
Loading
Loading