Content OS — engine, Mission Control operator console, and Studio ops surfaces#85
Merged
Merged
Conversation
The four contentOs flags gate every autonomous subsystem but had no UI — operators had to hand-craft a POST /settings call. The dashboard now has a Rollout panel: two-step confirm to enable (arming autonomy deserves friction), one-click disable (stop controls never have friction), and saves merge over the existing row value so non-flag keys like agentReviewMinConfidence survive a toggle. 404 on the settings row reads as all-OFF, mirroring getContentOsFlags on the CMS side.
…w row Spec hygiene per DoD: requirement + tasks for the switchboard gap found during the post-merge audit, an n/a Setup Impact Registry row for content-os-ui (UI-only over the already-seeded contentOs row), and the CHANGELOG entry under Unreleased.
Leftover scratch file from the access-cli flaky-test investigation, accidentally committed to main.
The suite from the IDOR testing guidelines (docs/en/security/idor-testing.md) shipped as it.todo stubs. Implemented as DB-backed service-level tests per the repo's DATABASE_URL convention: both tenants carry a collection with the same name, so isolation must come from item/revision site scoping — not from name resolution or the permission layer (no permissionCtx on purpose). Covers detail, patch, softDelete, bulk update/delete, revision listing, revert, and pin release; write attempts also assert the row is untouched afterwards. Verified green against the local Postgres.
544937b to
96c712a
Compare
Dependabot alert #46 (high): esbuild < 0.28.1 lacks binary integrity verification on its install fallback path, enabling RCE via NPM_CONFIG_REGISTRY. Raise the pnpm override from ^0.25.12 to ^0.28.1. vite 6 cannot drive esbuild 0.28's syntax lowering (the production transpile pass fails on destructuring for its chrome87/es2020 default targets), so studio and docs move to vite ^7.3.5 and a workspace override pins vitest's internal vite to the same major — vitest 3.2.6 declares ^7.0.0-0 peer support. Verified: studio + docs builds, 1249 CMS tests, 238 studio tests, full typecheck, tsx smoke.
…ithout-UI gaps Audit 2026-06-13 cross-referenced CMS routes against every api/v1 call in Studio. Eight endpoints have no UI: agent roles CRUD, intent update/delete/scan, goal decompose/settle, artifact evaluate, promotion eligibility check (Content OS — Req 16-20 + tasks 16-20), plus materialize manager, translation-memory manager and marketplace publish (new studio-ops-ui spec).
…, planner actions, evaluate, promotion check Closes the five Content OS endpoints that had no UI (content-os-ui Req 16-20): - Agents sub-route: role library CRUD with enabled toggle and two-step delete; admin-gated errors surfaced instead of silent failures. - Intent detail grows Scan now (manual reconciliation cycle with inline result), an inline edit form (PATCH; rules/budget as raw JSON), and a two-step delete that navigates back to the list. - Goal tree nodes get Decompose (sub-goal rows assigned to roles from the library) and Settle for parents. - Artifacts tab gets an Evaluate action showing the gate verdict inline. - Trust ledger gets a promotion eligibility check that creates a real human-gated proposal when evidence suffices. 12 new component tests; studio suite 250 green.
…place publish Closes the three non-Content-OS backend-without-UI gaps (studio-ops-ui Req 1-3): - Settings → Materialized views: list/create (auto/cron/manual strategy), per-row Refresh now, two-step Confirm drop (dropping deletes the physical table). - Settings → Translation memory: entry table with language-pair filter, upsert form, and try-out panels for the fuzzy lookup and the full TM → glossary → provider translate pipeline. - Marketplace gains a Publish extension dialog (slug, publisher, signing material) completing the publish loop in the UI. 8 new component tests; studio suite 258 green.
DoD closeout for content-os-ui phase 3 and studio-ops-ui: both are UI-only over existing endpoints — registry rows 8 (updated) and 9 (new) record the n/a review; CHANGELOG gains the two Unreleased feature entries.
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.
Content OS — full vertical: engine, operator console, and ops surfaces
This branch delivers the Content OS end to end on top of
main, then closes every backend-without-UI gap found in a route-by-route audit, plus security hardening surfaced along the way.What's in here
Content OS engine (spec
.kiro/specs/content-os, modules A–E — shipped earlier from this branch via #78/#88, now extended)llms.txt. All behind four per-site flags, default off.Mission Control — operator console (spec
.kiro/specs/content-os-ui, Req 1–20 complete)contentOs.*flags from the dashboard — two-step confirm to arm a subsystem, one-click disable; saves merge over the settings row so non-flag keys survive.Studio ops surfaces (new spec
.kiro/specs/studio-ops-ui, Req 1–3 complete)Security
it.todostubs from the IDOR guidelines are now real DB-backed tests (two tenants, same collection name; every cross-tenant op must 404/no-op and leave rows untouched). Verified green against Postgres.NPM_CONFIG_REGISTRYon the install fallback path). Required unifying vite 7.3.5 across the workspace: vite 6 cannot drive esbuild 0.28's syntax lowering.Setup & DoD hygiene
requirements/design/tasks) reflect final state with all tasks ticked.Verification
pnpm typecheck(14 packages)Rollout
Everything is additive. With the four
contentOs.*flags off (default), behavior is identical to the pre-Content-OS baseline. Existing instances need no migration action for the setup seeds (documented in CHANGELOG upgrade steps).