feat: pin sessions to workspace revisions
This commit is contained in:
@@ -26,6 +26,24 @@
|
||||
completed with 22 passing tests.
|
||||
- `git diff --check` completed cleanly.
|
||||
|
||||
## Review fixes — round 3
|
||||
|
||||
- The active registry snapshot that located a session now remains the authorization and mutation
|
||||
config for response, steer, events, close/delete, archive/group/rename, documents, and detail.
|
||||
A pruned historical revision cannot block an already-located session's active lifecycle.
|
||||
- Only Resume resolves the retained pinned descriptor because Pi needs that immutable config to
|
||||
restart safely. A pruned pin therefore returns the existing sanitized
|
||||
`workspace_revision_unavailable` 409 solely for Resume.
|
||||
|
||||
### Round 3 verification
|
||||
|
||||
- RED: with a manifest found through an active registry snapshot and `readPinned` forced to fail,
|
||||
`POST /sessions/:id/response` returned 409 instead of forwarding the active gate response.
|
||||
- GREEN: `npx vitest run test/routes-sessions.test.ts test/tht-runner.test.ts test/routes-settings.test.ts && npx tsc --noEmit -p .`
|
||||
— 102 tests passed with a clean type check. The regression confirms response, close, and delete
|
||||
use the locating snapshot without calling `readPinned`, while Resume returns a sanitized 409.
|
||||
- `git diff --check` completed cleanly.
|
||||
|
||||
## Review fixes — round 2
|
||||
|
||||
- Lifecycle authorization no longer selects the installation-default workspace. The backend now
|
||||
|
||||
Reference in New Issue
Block a user