docs(harness): publish final Cognitum Spaces evidence (#1653)

This commit is contained in:
rUv
2026-08-19 14:52:09 -04:00
committed by GitHub
parent 1d2ad6aa8e
commit a3b6e1d500
6 changed files with 61 additions and 45 deletions

View File

@@ -1,6 +1,6 @@
# ADR-325: Cognitum Spaces activation and governed spatial exchange
- **Status**: Accepted — legacy read live; versioned hierarchy, local memory, and governed-action implementation validated on feature branches; deployment pending
- **Status**: Accepted — legacy and versioned reads, OAuth activation, local spatial memory, governed-action policy, metaharness support, and npm distribution are implemented; HTTPS production evidence is complete
- **Date**: 2026-08-17
- **Deciders**: ruv
- **Tags**: cognitum-spaces, oauth, spatial-state, privacy, ruvector, policy, autogenous
@@ -423,41 +423,56 @@ Identity metadata deliberately advertises `spaces:read` for RuView but not
publisher surface. RuView therefore has no OAuth write, command, policy-approval,
or actuator capability.
This production evidence does not claim deployment of sites/buildings/floors/
zones, entities, semantic event or alert resources, tenant-scoped RuVector
spatial history, MQTT reconciliation, governed actions, commands, or actuators.
The first three are implemented and locally validated in the 2026-08-19 feature
branches described below, but remain non-production until their workflow and
readback gates pass. Commands and actuators remain out of scope.
That receipt was for the initial flat Space slice. The following production
expansion supersedes only its hierarchy/event/alert deferral. MQTT, commands,
actuators, real-hardware accuracy, and the long-duration operational trial
remain outside the completed claim.
## Feature-branch implementation evidence (2026-08-19)
## Completed implementation and production expansion (2026-08-19)
- Cognitum API ADR-101 implements all eight `/v1/spatial` collections, coherent
transactional hierarchy checks, stable pagination, event/alert retention,
strict P2/P3 admission, API-key-only writes, and OAuth/API-key reads. The
Firestore emulator passed both the legacy and versioned verification scripts,
including cross-resource message replay denial.
- `ruview-cognitum-spaces` adds a strictly decoded, paged, read-only client for
every versioned collection. `wifi-densepose spaces --resource ...` exposes it
while preserving the legacy flat command. The focused client suite and the
CLI no-default-features test gate pass.
- The contributor metaharness now accepts `resource`, `limit`, and opaque
`cursor` on `ruview_spaces_list`, fixes the API origin, strips API-key
compatibility authority, and revalidates hierarchy/event/alert contracts.
Full metaharness, security, brain, flywheel, manifest, audit, and pack gates
pass for the `@ruvnet/ruview` 0.5.0 release candidate.
- ADR-326 adds `ruview-spatial-memory`: one RuVector HNSW index per authenticated
tenant/workspace, replay/derivation/retention gates, cascading erasure,
bounded explanations, and XChaCha20-Poly1305 snapshots with reload-verified
key rotation. Its focused crate suite passes with `SYNTHETIC` evidence.
- ADR-327 extends `ruview-policy` with typed observe/recommend/execute intents,
exact host grants, signed approvals, nonce/idempotency defense, the existing
ADR-321 assurance matrix, and signed hash-chained receipts. `spaces:read` is
explicitly denied as execution authority. Its focused crate suite passes.
- The required whole-workspace Rust command was attempted twice on Windows:
parallel compilation ended in a compiler-process stack-buffer-overrun and a
single-job retry reached the configured timeout without a source/test
diagnostic. This is not recorded as a green gate; Linux CI remains required.
- Cognitum API PRs #211 and #212 shipped the eight `/v1/spatial` collections,
transactional hierarchy integrity, stable pagination, event/alert retention,
strict P2/P3 admission, API-key-only writes, OAuth/API-key reads, and the
additive-only Firestore release authority. Function run `32279092861`
promoted active Node 22 revision `spacesapi-00005-kaf`.
- Edge PRs #214, #215, and #216 preserved canonical UUID routing, kept SQLi
denial, and removed secret-valued API-key rate selection. Gateway run
`32284410107` promoted the reviewed immutable digest to 100% production
traffic. Every versioned collection returned HTTP 200 through the public
edge; the hierarchy composite index is `READY` and both retention TTL fields
are `ACTIVE`.
- The dedicated RuView service credential was rotated to exactly
`spaces:read` and `spaces:write`; its predecessor returns 401. A non-mutating
invalid-body probe reached write validation without persisting customer data.
Other potentially affected owner keys and residual log retention remain
tracked in Cognitum API #217.
- A live RuView Authorization Code + S256 PKCE consent requested exactly
`sensing:read spaces:read`. Its in-memory token read versioned `sites` with
HTTP 200 and schema `1.0`; the verifier then revoked the temporary refresh
credential and persisted no token.
- RuView PR #1650 merged `ruview-cognitum-spaces`,
`ruview-spatial-memory`, the ADR-327 policy extension, CLI paging, and the
guarded `ruview_spaces_list` metaharness surface. PR #1651 removed stale
feature-branch guidance and refreshed the signed package manifest.
- The contributor metaharness fixes the API origin, accepts bounded resource,
limit, and opaque-cursor inputs, strips API-key compatibility authority over
MCP, invokes only the hardened OAuth CLI, and rejects raw sensing or malformed
hierarchy/event/alert output. Its test, security, reviewed-brain, flywheel,
manifest, audit, exact-tarball, and claim-check gates pass.
- Release run `32286297277` rebuilt and smoke-tested the exact package and
provenance-published `@ruvnet/ruview` 0.5.0. The public npm registry resolves
0.5.0 as `latest`; no workstation publish was used.
- `ruview-spatial-memory` keeps one RuVector HNSW index per authenticated
tenant/workspace with replay, derivation, retention, cascading-erasure,
bounded-explanation, encrypted-snapshot, and reload-verified rotation gates.
This is local `SYNTHETIC` evidence, not a production sensing claim.
- `ruview-policy` keeps observe/recommend/execute intents distinct, requires
exact host grants plus signed approval for consequence, rejects nonce replay,
and emits signed hash-chained receipts. `spaces:read` is explicitly denied as
execution authority.
- Focused Rust gates and the Linux workspace/CLI/security lanes pass. Earlier
Windows whole-workspace attempts ended in host compiler failure or timeout;
those attempts are not reclassified as green evidence.
- No OAuth write/action scope, actuator callback, MQTT deployment claim, sensing
accuracy claim, or real-hardware claim is introduced.
@@ -478,8 +493,9 @@ readback gates pass. Commands and actuators remain out of scope.
- Two credential types coexist during migration and must stay visibly distinct.
- OAuth depends on Identity JWKS availability and correct key rotation.
- Production currently exposes the legacy spaces slice; the implemented full
hierarchy/events/alerts model remains staged until deployment/readback.
- Production exposes both the legacy Space twins and the versioned hierarchy,
anonymous entities, semantic events, and alerts over HTTPS. MQTT remains a
design contract without deployment evidence.
- OAuth workspace IDs will return only documents populated with `workspaceId`;
legacy owner-only documents require an explicit migration, never a broad query.
- The RuView client exposes no write, command, or agent execution surface. The