Files
Assistant/dev/tasks/DEV-000040-creator-action-history.json
m 0e56fe7662
CI / test (pull_request) Successful in 10s
CI / test (push) Successful in 10s
feat: show Creator action history
2026-08-16 18:40:58 +03:00

96 lines
4.1 KiB
JSON

{
"task_id": "DEV-000040",
"task_revision": 1,
"architecture_revision": "ADR-0004",
"base_repo_revision": "2d2615b734e0df053bced78e51f548b37ea0e60c",
"risk_tier": "E",
"intent": "Expose a bounded, owner-scoped, read-only Creator action history from Commit canonical state and render it in the Domovoy console without new mutation authority, persistence, credentials, or docker-test.",
"requirement_ids": ["INV-AUTH-001", "INV-OWN-001", "CONSTITUTION-1.3.23", "USER-DOCKER-PROD-ONLY"],
"allowed_change_scope": {
"modules": ["commit"],
"paths": [
"adapters/postgres/commit_repository.go",
"cmd/commit-runtime/creator_command.go",
"cmd/commit-runtime/creator_command_test.go",
"cmd/creator-web/server.go",
"cmd/creator-web/server_test.go",
"cmd/creator-web/static/index.html",
"cmd/creator-web/static/assets/console.js",
"cmd/creator-web/static/assets/console.css",
"tests/creator_commit/verify-remote.ps1",
"dev/ACTIVE_TASK.json",
"dev/tasks/DEV-000040-creator-action-history.json"
]
},
"forbidden_change_scope": {
"paths": [
"architecture/**",
"ci/**",
".gitea/**",
"contracts/**",
"modules/identity/**",
"modules/authority/**",
"modules/work/**",
"modules/continuity/**",
"database/**",
"security/**",
"deploy/**"
]
},
"allowed_architecture_delta": {
"new_cross_module_dependencies": 0,
"new_canonical_owners": 0,
"new_privileges": 0,
"new_third_party_dependencies": 0
},
"contracts": {
"consume": ["Creator session", "contracts.commit@v1 canonical action envelope and attempt", "existing Creator gateway"],
"may_change": []
},
"semantic_owner": "commit for canonical action data; Creator UI is a read-only projection",
"canonical_state": ["existing Commit authorized action envelopes and action attempts; no new canonical state"],
"state_transitions": ["none; public query is read-only"],
"side_effects_and_privileges": ["authenticated HTTP reads from the existing commit schema", "browser renders a replaceable projection"],
"persistence_and_migrations": ["none; bounded owner-local SELECT only"],
"failure_retry_restart": ["invalid or expired session is denied before repository access", "invalid limits are rejected", "an authorized action with no attempt remains visible as AUTHORIZED", "query failure returns explicit service unavailability and does not mutate state", "UI refresh is explicit and safe to repeat"],
"assumptions": [
"The first page of at most 50 newest actions is sufficient for the V1 operational console",
"AuthorizedAtUnixMillis plus AuthorizedActionID provides deterministic descending order",
"EvidenceRef and grant details are intentionally omitted from the list response",
"docker-test remains prohibited"
],
"acceptance_scenarios": [
"missing or invalid Creator session is denied before Commit history query",
"Actor and Principal filters are taken only from the validated server session",
"history is bounded to 1 through 50 and ordered deterministically newest first",
"only Commit-owned tables are queried",
"an action without an attempt is returned as AUTHORIZED with no attempt identity",
"the gateway allowlists only the exact GET action-history route",
"the console renders loading, empty, error, succeeded, failed, unknown, executing, and authorized states without exposing evidence or credentials",
"desktop and mobile layouts remain usable and keyboard accessible",
"production smoke observes the newly committed Creator action through the authenticated history endpoint",
"exact diff validation observes only declared paths"
],
"required_tests": [
"unit",
"owner filter and bounded query",
"gateway allowlist",
"runtime HTTP",
"responsive browser",
"browser console",
"remote Docker smoke",
"PowerShell parser",
"architecture preflight",
"exact diff scope",
"go test",
"go vet",
"CI"
],
"terminal_gap_states": [
"BLOCKED_BY_ARCHITECTURE_GAP",
"BLOCKED_BY_SPEC_GAP",
"BLOCKED_BY_CONFLICT",
"BLOCKED_BY_MISSING_CAPABILITY"
]
}