wip(dev-000073): preserve durable bootstrap checkpoint
CI / test (push) Failing after 19s

DEV-000073 is NOT DONE; current work is partial/stabilized WIP only. go test ./cmd/devctl was last verified PASS. Remaining bootstrap/secret integration requires a stronger long-horizon model. This commit is preservation-only; current ancestry includes DEV-000072 candidate 36fec6c05cdf7aaf413fe... and must be reconciled before DEV-000073 promotion.
This commit is contained in:
m
2026-08-18 12:07:11 +03:00
parent 36fec6c05c
commit 754cbe43d2
12 changed files with 2679 additions and 5 deletions
+2 -2
View File
@@ -1,5 +1,5 @@
{
"task_file": "dev/tasks/DEV-000072-semantic-interpretation-deferral-boundary.json",
"task_id": "DEV-000072",
"task_file": "dev/tasks/DEV-000073-production-deployment-continuity-safe-redeploy.json",
"task_id": "DEV-000073",
"task_revision": 1
}
@@ -5,6 +5,14 @@
"base_repo_revision": "64870798b9a50f895c99d24441703f366df5c98a",
"risk_tier": "E",
"intent": "Implement semantic interpretation and deferral boundary V1 so deterministic interpretation acts as a fast-path candidate rather than unquestionable final truth; preserve provenance between deterministic and cognitive candidates; support mixed intent and safer deferral without activating new providers.",
"non_goal_scope": [
"Do not build a dedicated naming subsystem in this task (for example, no assistant_name table/field).",
"Do not implement dedicated favorite_color/disliked_food/project_role-like preference schemas in this task.",
"Do not introduce a hardcoded 'запомни' keyword trigger or naming-specific memory trigger.",
"Do not introduce dedicated naming memory, universal ontology, or graph/knowledge DB in this task.",
"Treat naming/name-preferral utterances as generic semantic interpretation cases and test fixtures, not the target for persistence architecture changes.",
"Any future durable memory/knowledge mechanism is out of scope for this task and must be captured as a follow-up requirement."
],
"requirement_ids": [
"DEV-000071 measured baseline",
"Deterministic candidate can decline/defer",
@@ -136,6 +144,11 @@
"reality evaluation comparisons",
"production /chat acceptance"
],
"future_scope_requirements": [
"Generic interaction-to-memory pipeline (common conceptual flow): interaction -> understood meaning -> potential memory/knowledge candidate -> subject/scope/provenance -> salience/relevance -> persistence decision -> relations/associations -> retrieval -> correction/consolidation.",
"Support multiple ordinary human preference/intention domains (names, preferred forms of address, colors, dislikes, habits, relationships, project facts, machine characteristics, temporary constraints) without special schema-per-example.",
"Use existing Epistemics/Experience/Identity/Situation foundations first; introduce new canonical concepts only when requirements and architecture review justify them."
],
"terminal_gap_states": [
"BLOCKED_BY_SPEC_GAP",
"BLOCKED_BY_ARCHITECTURE_GAP",
@@ -0,0 +1,72 @@
{
"task_id": "DEV-000073",
"task_revision": 1,
"architecture_revision": "DEV-000072-baseline",
"base_repo_revision": "36fec6c05cdf7aaf413ffe6b9437f07b03fc7b6b",
"risk_tier": "E",
"intent": "Introduce deterministic two-phase production deployment (prepare/apply) and stale/health/state gates in devctl without changing runtime semantics, so missing required production deployment inputs can never trigger an unsafe recreate.",
"requirement_ids": [
"prepare/apply separation",
"fail-closed required input resolution",
"exact artifact pinning",
"stale plan rejection",
"known-good/rollback capture",
"health verification on apply",
"no production mutation from ambient shell"
],
"allowed_change_scope": {
"paths": [
"AGENTS.md",
"cmd/devctl/**",
"docs/DEPLOYMENT.md",
"docs/PROJECT_STATUS.md",
"docs/evidence/deployment-continuity-dev000073.md",
"architecture/UNRESOLVED_QUESTIONS.md",
"dev/tasks/DEV-000072-semantic-interpretation-deferral-boundary.json",
"docs/evidence/production-recovery-incident-20260818.md",
"dev/ACTIVE_TASK.json",
"dev/tasks/DEV-000073-production-deployment-continuity-safe-redeploy.json"
]
},
"forbidden_change_scope": {
"paths": []
},
"allowed_architecture_delta": {
"new_cross_module_dependencies": 0,
"new_canonical_owners": 0,
"new_privileges": 0,
"new_third_party_dependencies": 0,
"new_provider_adapters": 0,
"new_database_owner_roles": 0
},
"semantic_owner": "devctl",
"contracts": {
"consume": [
"contracts.identity"
],
"may_change": []
},
"acceptance_scenarios": [
"fresh shell prepare without ambient production env fails unless required values are in --env-file",
"deploy apply refuses when plan is stale due input/config/revision changes",
"deploy prepare can create READY and BLOCKED plans with machine-readable reasons",
"deploy apply succeeds only for READY plans and verifies deployment artifacts and /health endpoints",
"known-good revision is captured deterministically from production manifest or explicit recovery snapshot",
"healthy production is preserved when PREPARE or APPLY refuse to proceed"
],
"required_tests": [
"go test ./cmd/devctl",
"go run ./cmd/devctl preflight -task dev/tasks/DEV-000073-production-deployment-continuity-safe-redeploy.json",
"go run ./cmd/devctl check-diff -task dev/tasks/DEV-000073-production-deployment-continuity-safe-redeploy.json",
"go run ./cmd/devctl deploy prepare --target production --compose deploy/docker-compose.prod.yml --env-file <production-bootstrap.env> --plan .devctl/deployment-plans/test-dev073.json",
"go run ./cmd/devctl deploy apply --plan .devctl/deployment-plans/test-dev073.json --dry-run",
"go run ./cmd/devctl deploy apply --plan .devctl/deployment-plans/missing.json"
],
"terminal_gap_states": [
"BLOCKED_BY_SPEC_GAP",
"BLOCKED_BY_ARCHITECTURE_GAP",
"BLOCKED_BY_MISSING_CAPABILITY",
"BLOCKED_BY_CONFLICT",
"REQUIRES_MIGRATION_DECISION"
]
}