Repository navigation
Conversation
ROADMAP CI-019 asked for API-first configuration journeys with equivalent UI
and separated visibility and command authority. Status and export both
required `configure`, status could not tell which retained epochs are valid
rollback targets under D8, no read API exposed a semantic diff, and the UI
could neither review nor activate a registered custom epoch.
Provisional owner decisions (2026-10-11), recorded in the API lifecycle
design: D1 "files" is the existing single-document import/export; D2 a
separate read-only preview compares two retained epochs while validation
stays pure; D3 status and preview need `read`, exact export keeps
`configure`. Every policy-schema object is closed and changed arrays collapse
to their own pointer, so preview pointers name schema fields only.
Backend: GET .../epochs/{epoch_id}/preview?baseEpochId= returns
ci-config-epoch-preview/v1 with the proposal-review policy-semantic-diff/v1
pointers and hash plus the conservative rollback coverage relation of the
target against the base; an over-limit diff keeps the relation. Status is
ci-config-epoch-status/v2 and projects previouslyActivated with the exact D8
journal predicate through one bounded query over the page identities; no
table, index or migration. The HTTP profile, OpenAPI and generated client
are regenerated.
UI: each control mirrors its route role; the table shows previous
activation and rollback is offered only for such targets; an explicit
comparison renders pointers, coverage and diff identity; a non-active epoch
can start the registered-epoch GitHub review; the review callback lands on
Configuration, shows the preview and activates through v3 inside the
existing serialized command hook with uncertain-command retention.
Unit, PostgreSQL, vitest and browser witnesses are authored or updated but
not executed locally; they run in GitHub CI. No live GitHub step-up,
deployed hot-reload effect or browser evidence for the new journeys is
claimed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Context
ROADMAP CI-019 requires API-first configuration journeys with equivalent UI and separated visibility/command authority. Status and export both required
configure, status could not show valid D8 rollback targets, no read API exposed the semantic diff, and the UI could neither review nor activate a registered custom epoch (CI-018 wire existed without UI).What changed
Provisional owner decisions (2026-10-11):
GET …/epochs/{epoch_id}/preview?baseEpochId=(ci-config-epoch-preview/v1) returns the review-ownerpolicy-semantic-diff/v1pointers and hash plus the rollback coverage relation; validation stays pure.read; exact export keepsconfigure. The pointer-disclosure analysis (closed schema, changed arrays reported as one pointer) is recorded in the lifecycle doc.Status is
ci-config-epoch-status/v2withpreviouslyActivated(exact D8 journal check, one bounded query, no migration). The UI gates each control by its route role, offers rollback only for previously activated epochs, compares with the active epoch, starts the registered-epoch GitHub review, and activates the returned review via v3. For areadsession with a reviewed baseline, activation stays disabled until the preview shows a terminal result (diff, over-limit relation or failure notice). The preview reads only while Configuration is visible; leaving the view or hiding the document aborts and discards it, and it is read again on return. The HTTP profile, OpenAPI/TS, requirements (REQ-CI-CONTROL-009, REQ-CI-UI-024), Proofkit bindings, docs and ROADMAP row are updated.Expected result
Exact-head CI runs the new and updated unit, PostgreSQL, vitest and browser tests.
Non-claims: no local test execution; no browser tests for the new journeys; no live GitHub step-up, deployed hot-reload effect or production identity evidence; REQ-CI-CONTROL-008 stays deferred; CI-019 stays open pending merged exact-source qualification.
Risks
read.vi.restoreAllMocks()fromonTestFinished. That is unverified until CI runs.Recommended next step: one focused reviewer pass on the four changed UI files and the two new tests, then exact-head CI.
Independent review: gpt-6-astra (xhigh); findings addressed or rejected with reasons in the single commit. Provisional owner decisions (2026-10-11) are labelled in the changed documents.