Implement lifecycle workspace publication and audit delivery

Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a10780-6d41-7952-9718-dfbc1f41236f
This commit is contained in:
tegwick 2026-10-04 20:17:24 +02:00
parent ee472acc87
commit 5fec7de4cb
21 changed files with 1022 additions and 78 deletions

View file

@ -4,29 +4,34 @@
> direction belongs in `INTENT.md`; the current stage belongs in `GOAL.md`;
> current work and gates belong in `workplans/`.
## Lifecycle expansion — 2026-10-04 (first local persistence slice)
## Lifecycle expansion — 2026-10-04 (source implementation)
The product now targets the full decision lifecycle for agents and humans with
an API foundation and a UI at `decisions.coulomb.social`. See
`docs/specs/DecisionLifecycleService.md` and `INFD-WP-0007`. Existing memo,
presentation, disposition, storage, review and intake modules are reusable
building blocks; they are not a complete headless lifecycle API. Research,
evaluation, collaborative authoring and audience-scoped publication still need
service/UI implementation. The first internal `LifecycleRepository` now supports
registration, immutable revisions, attributed research sources/evaluations/
comments and event retrieval using the existing Memo and Store (schema 4). Its
local event queue is durable. `LifecycleService` now wraps these operations
with fresh exact-policy observations, expiry checks inside write transactions,
and a verified human-session adapter. An unmounted WSGI
`LifecycleAPI` now provides registration, optimistic revisions with atomic packet
uploads, retrieval, history and annotation routes through that service; production HTTP exposure, workload identity composition and external
event delivery remain unimplemented. Unpublished lifecycle records
are excluded from the legacy approver overview, legacy import cannot bypass their
revision history, and pending lifecycle events close runtime readiness. See
`docs/specs/LifecycleFoundationContract.md` and
`docs/specs/LifecycleServiceContract.md`. Frictionless intake has local implementation
but its live delivery remains under `INFD-WP-0005`. The dated deployment snapshot
below is historical, not a fresh observation of production.
INFD-WP-0007 adds a headless service and an optional browser workspace. The shared
foundation supports registration with packet custody, immutable revisions,
attributed sources/evaluations/comments, explicit revision-specific publication,
authorized search, retrieval and history. Every operation consumes fresh Access
Engine policy observations; audience facts do not implement a local ACL.
The workspace reuses verified KeyCape sessions and CSRF/origin checks for draft
creation, research, discussion, publication, refinement, revision comparison and
packet downloads. Runtime configuration requires a separate lifecycle policy
package. The bearer API adapter remains unmounted pending workload identity and
listener admission. Lifecycle records remain outside the legacy approver overview;
the human binding handoff is not implemented.
Opt-in delivery commits lifecycle evidence through the existing Audit Core
outbox, with receipt-based settlement, retries and reconciliation. Current delivery
is platform-tenant-only. Pending evidence closes runtime readiness. The deployment
renderer supports separately pinned lifecycle policy and exact network proposals;
no live configuration was changed. Cross-repository validation: 623 passed,
5 skipped, including two agent-created decisions and human collaboration with
unchanged runtime configuration and actual Audit Core delivery. Identity and PDP
responses in that scenario are synthetic; this is not live acceptance evidence.
Contracts: `docs/specs/DecisionLifecycleService.md`, `LifecycleFoundationContract.md`,
`LifecycleServiceContract.md`, `LifecycleHTTPContract.md` and
`LifecycleWorkspaceDelivery.md` under `docs/specs/`. INFD-WP-0005 retains intake
runtime/admission work. The deployment snapshot below is historical.
## Status — 2026-09-27