Repository navigation
Drop project.status archived and the AI chat viewer's archived read-only gate - #3468
Conversation
Pragmatic Code Review — PR #3468Review Type: Initial Review (no prior reviews or comments on the PR; one commit, SummarySmall, atomic change that does what ADR-087 §1 and §3 ask: Requirements Check (issue #3445)
Non-goal respected: Node-type reviewer checklistNo undeclared key, no literal Code Review FindingsNo 🔴 Critical or 🟡 Important findings. 🟢 Suggestion — 📁 🟢 Suggestion — 📁 🟢 Nit — 📁 🟢 Nit — 📁 🟢 Nit — 📁 What I checked beyond the diff
RecommendationAPPROVE — net improvement, requirements met, tests prove the behaviour. The findings are optional. |
malibio
left a comment
There was a problem hiding this comment.
Automated pragmatic-code-review: APPROVE (posted as a comment — GitHub blocks self-approval). Full findings in the review comment above.
Review addressed (5135e22)Addressed (2)
Skipped (3)
Tests: the two touched Rust tests pass. Re-Review DecisionDecision: NO RE-REVIEW NEEDED Rationale: The review was APPROVE with suggestions only. The follow-up commit changes test code only: one extra assertion and a fixture value rename, with no production logic touched. |
…nly gate (closes #3445) project.status keeps planning, active, completed and cancelled; retiring a project is archiving the node through lifecycle (ADR-087 §3). The AI-chat viewer renders its input whatever the chat's lifecycle and no longer reads lifecycleStatus (ADR-087 §1). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- project_status_archived_is_rejected now asserts the generic update too, so its comment names every write path it exercises. - The related-filter fixture's second project uses status completed. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
5135e22 to
e856707
Compare
Closes #3445
Summary
Two types stop giving "archived" a meaning of their own (ADR-087 §1, §3).
project.statuslosesarchived. The values areplanning,active,completed,cancelled(plus user values). Retiring a project is archiving the node through lifecycle.lifecycleStatus. The "archived and read-only" notice and its style are gone.No migration: reset the database.
Node type sequence
project, a flat core type (kind and category unchanged).statusfield'scoreValuesdroparchived; the field description no longer mentions it. No field, relationship or rule is added.ProjectNode.statusstays a string (the schema owns the vocabulary), so nothing is regenerated. The hand-written TypeScriptProjectStatusunion dropsarchived.projectsheet incomponents/node-types.mdand ADR-087 in nodespace-docs already describe this shape, so there is no docs change.SKILL.mddrift check is unaffected.Tests
test_project_status_values: the schema's core values are exactly the four.project_status_archived_is_rejected: both the typed update and node creation rejectstatus: "archived".ai-chat-viewer-lifecycle.test.ts: the rendered viewer shows an enabled input for an active and an archived chat, and the viewer source reads no lifecycle status.bun run test:changedpasses (frontend, scripts, browser, Rust).🤖 Generated with Claude Code