Commit graph

3016 commits

Author SHA1 Message Date
ruvnet
183fcc78bc chore: loop-state — final verdict, proceeding to merge on documented basis
Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-04 07:13:16 -04:00
ruvnet
05ba265715 chore: loop-state iteration 38 — CI 32/22/0
Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 23:07:25 -04:00
ruvnet
cbf6901c6a chore: loop-state iteration 37 — CI 33/21/0
Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 23:02:36 -04:00
ruvnet
05246c6c5a chore: loop-state iteration 36 — CI 32/22/0, fix verified
Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 22:57:53 -04:00
ruvnet
b60f18131b chore: loop-state iteration 35 — post-fix CI clean, re-running
Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 22:53:06 -04:00
ruvnet
c0ac751247 chore: loop-state iteration 34 — windows path-classification fix pushed
Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 22:49:37 -04:00
ruvnet
e308816d4f fix(rvf-forge-core): classify rooted paths uniformly across platforms
Windows CI failure: '/etc/hostname' has a root but no drive prefix, so
is_absolute() is false on Windows and the path took the relative branch
with a different rejection message than the test (and Linux) expected.
Branch on has_root() instead — any rooted path goes through the
containment check on every platform. Refusal behavior unchanged; only
classification is now uniform. Linux gate re-verified: 117 tests,
clippy, fmt green.

Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 22:49:36 -04:00
ruvnet
18ca098b35 chore: loop-state iteration 33 — CI 29/25/0
Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 22:43:41 -04:00
ruvnet
95d6c33887 chore: loop-state iteration 32 — CI 31/23/0, parity green in CI
Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 22:38:52 -04:00
ruvnet
d291bb0f36 chore: loop-state iteration 31 — CI 12/42/0
Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 22:34:05 -04:00
ruvnet
52c15b4db5 chore: loop-state iteration 30 — awaiting full-green CI (0 failures)
Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 22:29:26 -04:00
ruvnet
1ad2175882 chore: loop-state — witness viewer landed; all workstreams complete
Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 22:25:51 -04:00
ruvnet
77d5db3ded feat(rvforge-reader): witness viewer — hash-chain verification screen + dock wiring
P15.11: loads reader/CLI receipts.jsonl, verifies per-subject content-id
+ prevReceipt continuity, renders chronological chains with exact
broken-at-N indicators; dock witness-status element now reflects real
chain state. Entirely system-owned chrome (ADR-295). Tamper/reorder/
empty cases tested. 133 reader tests green.

Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 22:25:50 -04:00
ruvnet
0e12581b9f chore: loop-state iteration 28 — acceptance snapshot green, CI 6/0/48
Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 22:24:42 -04:00
ruvnet
8a2f99ee98 chore: loop-state iteration 27
Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 22:20:07 -04:00
ruvnet
a43ef88afb chore(rvforge): prepublishOnly gate (build+test) before any npm publish
Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 22:20:06 -04:00
ruvnet
a97cd9944d chore: loop-state — parity landed, PARITY OK
Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 22:19:17 -04:00
ruvnet
20d0dea247 feat(rvforge): CLI<->Rust registry parity — proven interoperable
rvforge-registry-check binary validates any registry dir (content
addresses, release rules, lineage, log inclusion, witness chains);
scripts/rvforge-parity-check.sh publishes two lineage-linked releases
through the real CLI and validates with the Rust crate — PARITY OK.
CLI canonical-JSON/id divergences fixed on the CLI side per contract.
CI parity job added (ubuntu). Registry 92 tests, CLI suites green.

Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 22:18:53 -04:00
ruvnet
8acb5065c3 chore: loop-state iteration 25 — witness-viewer spawned
Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 22:14:44 -04:00
ruvnet
11006e4c3a chore: loop-state iteration 24 — parity in progress, CI 7 green / 0 red
Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 22:09:52 -04:00
ruvnet
2196725252 chore: loop-state iteration 23
Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 22:05:16 -04:00
ruvnet
fa16ba2e44 docs: ADR 284-293 status sync against landed implementation
284/285/286/288/289 -> Accepted with precise landed-scope notes;
287/290/292/293 stay Proposed with honest gap notes (hosted service,
rvm runtime — cross-repo). Living-plans discipline: every status now
matches the code on this branch.

Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 22:05:15 -04:00
ruvnet
b33b4bbd9f chore: loop-state — reader FFI landed
Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 22:04:11 -04:00
ruvnet
bdc4fcbfa6 feat(rvforge-reader): real rvf-forge-core verification + encrypted state capsules
Inspect/verify now call rvf-forge-core (inspection-only, verification
before any load, witness record per verification appended to the state
dir per ADR-284 req 9); capability card derives from real declared
capabilities and refuses to render unverified; state capsules encrypted
(ChaCha20-Poly1305, per-install key, 0600 perms) with base-RVF lineage
binding and mismatch rejection per ADR-288. 113 reader tests green.

Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 22:03:59 -04:00
ruvnet
3290769a56 chore: loop-state iteration 21 — parity-check spawned
Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 22:00:35 -04:00
ruvnet
a069ea35de chore: loop-state — publisher verbs landed (P1)
Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 21:57:21 -04:00
ruvnet
70d8c5f4b8 feat(rvforge): publisher verbs pack/test/publish with local registry
pack: P4 validation (structure, capability specificity with ADR-294
manual-review-trigger flagging, compat, inventory, license), draft
Release + CapabilityManifest objects. test: inspection-only subset of
the 10 P4 categories with honest 'skipped: requires quarantined runtime'
for execution-dependent ones; tampered variants rejected. publish:
ed25519-signed content-addressed writes to the registry-model layout
(predecessor lineage, transparency log, witness receipt); keygen via
node:crypto; key files never logged, world-readable keys refused.
220 jest tests green across 13 suites.

Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 21:57:19 -04:00
ruvnet
b5757d3e80 chore: loop-state iteration 19
Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 21:56:07 -04:00
ruvnet
cbd6203406 docs: acceptance traceability matrix — merge gate for PR #790
Maps every §15/platform/dock criterion to automated evidence or a named
DEFERRED blocker (clean-OS installs, notarization, cross-repo rvm
runtime). Merge gates on green AUTOMATED rows across 3 OSes.

Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 21:56:06 -04:00
ruvnet
c0c3afe61e chore: loop-state iteration 18
Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 21:50:56 -04:00
ruvnet
2b665deaf6 ci: cover rvforge-registry and rvforge-reader in the RVForge matrix
Registry tests/clippy/fmt ride the existing core job; the reader gets
its own 3-OS job run inside its standalone workspace directory.

Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 21:50:55 -04:00
ruvnet
9ae17acafe chore: loop-state iteration 17
Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 21:46:29 -04:00
ruvnet
7e23bed37d docs: ADR status updates — 291/295 Implemented, 283/294 Accepted-in-progress
Living-plans sync: statuses now reflect what is actually on the branch,
with Updated notes naming landed scope and remaining gaps.

Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 21:46:28 -04:00
ruvnet
3cae657d68 chore: loop-state — Agent Dock implemented (P5)
Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 21:43:36 -04:00
ruvnet
75bb55b611 feat(rvforge-reader): ADR-295 Agent Dock — typed trust boundary, states, roster
Trust boundary enforced structurally: AgentProvidedStatus (sanitized
task text + progress only) composed separately from SystemOwnedStatus
(state, trust badge, network, permissions, witness, cost) — agent input
cannot reach system fields by construction. Sanitizer strips ANSI/
control chars, caps length, flags system-label mimicry as suspicious.
8-state machine (pause/terminate always one action; quarantine/
capability-denied not agent-exitable), attention-priority roster
(approval > denial > error > running), D8 event thresholds, pill +
expanded UI with visually distinct system chrome. 90 reader tests green.

Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 21:43:35 -04:00
ruvnet
67a4ac241d chore: loop-state — registry crate landed (P2-impl, P4)
Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 21:41:57 -04:00
ruvnet
e25edc6a42 feat(rvforge-registry): content-addressed local registry with transparency log
ADR-294 MVP: canonical-JSON content addressing (id excludes signatures),
typed registry objects, ed25519 release-publish rules (bad-sig/revoked-
key/lineage violations typed), trust levels raisable only by registry
signature, non-destructive revocation (blocks execution, reads preserved
— tested), Merkle transparency log with inclusion proofs + tamper
detection, witness receipt chains on publish/revoke/verify. Reuses
rvf-forge-core canonical/error patterns. 67 tests, clippy+fmt clean.

Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 21:41:56 -04:00
ruvnet
f80365ad26 chore: loop-state iteration 14
Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 21:41:25 -04:00
ruvnet
6461396c88 chore: loop-state iteration 13 — publisher-verbs spawned
Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 21:36:59 -04:00
ruvnet
67a8482451 chore: loop-state — steps 6+7 CLI side complete
Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 21:35:56 -04:00
ruvnet
e82f863f96 feat(rvforge): embedded/thin packaging, compat enforcement, inventory, witness chains
FR001/FR002: embedded mode with cross-target identical-RVF-hash
invariant (build fails on divergence), thin-mode signed locators with
round-trip verification. ADR-291 compat-matrix enforcement with
closest-supported suggestions. Deterministic software inventory (§3.9).
Hash-chained witness receipts (receipts.jsonl) on build/verify with
broken-chain detection. 137 jest tests green across 9 suites.

Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 21:35:55 -04:00
ruvnet
52f50b622a chore: loop-state iteration 11
Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 21:32:01 -04:00
ruvnet
01e9edaf56 chore: loop-state iteration 10 — dock-impl spawned
Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 21:27:22 -04:00
ruvnet
a464e7e3d2 chore: loop-state — reader scaffold + ADR-295 landed
Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 21:23:09 -04:00
ruvnet
af263b35ef feat(rvforge-reader): Tauri v2 Reader scaffold + ADR-295 Agent Dock spec
Reader (standalone workspace, excluded from root): verify/capability-
card/runtime screens as framework-free static UI, runtime selection
implementing the FR004 ladder from the vendored compatibility matrix,
P6 capability contract rendering with vague-scope rejection, ADR-288
state-capsule layout (encryption stubbed, marked), inspect stubbed
pending rvf-forge-core FFI. 39 tests green, cargo check clean, parent
workspace unaffected. ADR-295: dock chrome RVForge-owned, agent content
strictly separated.

Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 21:23:08 -04:00
ruvnet
b933b9a5a5 chore: loop-state — scope widened to full ADR-283..295 implementation
Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 21:22:17 -04:00
ruvnet
6ff055b036 docs: RVForge Agent Dock spec (D1-D8) — security/control surface
Collapsed pill + expanded trust view, 8 agent states, RVForge-owned
chrome vs agent content separation (spoofing defense), per-platform
placement, capability card, event-threshold noise control, 5s/2-action
termination acceptance test. ADR-295 in flight; dock implementation
queued behind reader scaffold in loop plan.

Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 21:20:51 -04:00
ruvnet
274dccbca6 chore: loop-state iteration 7 — packaging+witness agent spawned
Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 21:18:45 -04:00
ruvnet
77ccb10055 chore: loop-state — core crate step 2 complete
Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 21:15:23 -04:00
ruvnet
ce25d787c6 feat(rvf-forge-core): inspection-only RVF packaging/verification crate
Per ADR-283/290/291: container inspection without execution, Ed25519
root-manifest + per-segment hash verification with unsigned-executable-
segment rejection, deterministic canonical build manifest (ADR-291
contract fields), provenance records, SHA256 checksum manifests, stable
wire error codes mirroring the CLI. 103 unit tests + integration
pipeline test, clippy -D warnings and fmt clean.

Co-Authored-By: claude-flow <ruv@ruv.net>
Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx
2026-08-03 21:15:14 -04:00