brief: the human deletes a creative instance, chained after row 194 (REQ-COS-3, mos-1215); window plan W11 posts on 435
This commit is contained in:
1 parent
3fb00018e0
commit
b79ad5f2cb
2 files changed
+51
-1
No files matched your search
@@ -138,7 +138,7 @@ handle that.
|
||||
| W5 | Sage, on Mos's go | The same command without `--plan`. Exit 0, `result ok`, and every gate check passes, `pm_launched` included. Record the activation id, the backup path, STAMP and the backup SHA256SUMS sha256. Then `status`. |
|
||||
| W9 | Sage, after Mos verifies W5 | The 177-185 W9 list, plus: the webui journal since the W5 stamp (with `UTC`) has no `Sign-in:` line; `/proc/<Console pid>/cwd` names the NEW copy; `$DATA/console/tester.sock` is 0600 in a 0700 `console/`; `peercred-starts.jsonl` gained one line for this start; the bus journal has the grant reconcile and sweep lines and no `library:` line; the pm's requirements read gives 1.10 with 70 ids. |
|
||||
| W10 | Sage | The matrix again, as `$WIN/matrix-new.txt`, identical to `matrix-old.txt` apart from the lines the pin changes, each one named. The two tester reads through `tester-http.mjs` match P6's. Port 7333 has no listener (`ss -ltn`). Then P4 again. A write without a signed-in session must still be refused. That's Console POST through the main port, with no session. This is the check mos-1195 asks for before phase 2 is done, so I run it here too, as a baseline. |
|
||||
| W11 | Sage | STATE report in `$WIN/STATE.md`, posted on P19 386 and 412 and on the J2 task, whose id I confirm by title before P0, and on the Gitea issues for 190, 199, 210, 234 and 196. |
|
||||
| W11 | Sage | STATE report in `$WIN/STATE.md`, posted on P19 386, 412 and 435 (J2, mos-1215), and on the Gitea issues for 190, 199, 210, 234 and 196. |
|
||||
| W12 | Sage, after W11 | Row 66's live check (Vikunja #454). One Claude Code managed session with a prompt that draws a known tell, then the operator note on the RESULT, the next-turn notice and the `unslop.jsonl` counts. Backup first (Q173). Pi isn't run (#383). |
|
||||
|
||||
## Stop conditions and rollback
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
# Brief: the human deletes a creative instance (REQ-COS-3, after row 194)
|
||||
|
||||
Sage, 2026-10-21, for mos-1214 item 5 and mos-1215 item 3. Owner Honker, reviewer Webby, gate owner Sage.
|
||||
Chained after row 194: `deleteRefusal` and the delete path land in 194, so this row builds on 194's
|
||||
landing. The row has to land before the v1 tag for 10-27. If it slips past that date, Sage tells Mos before
|
||||
194's v1 tag (mos-1215).
|
||||
|
||||
## Why
|
||||
|
||||
REQ-COS-3 (`docs/prd/mosaic-stack.md:342`) says "Only the user deletes an instance." Creative entries are
|
||||
instances: they sit in the business file's `instances`, and only the human's `instances.set` adds or changes
|
||||
one (C2-08 M10, row 213). Row 213 made every creative definition END_PROTECTED (`vocabulary.mjs:195`,
|
||||
`END_PROTECTED = THREAD_DEFINITIONS`). In row 194, `deleteRefusal` refuses END_PROTECTED for every actor
|
||||
(`organization-definition-refused`), so nobody can delete a creative instance. The human can only delist one
|
||||
with `launch: false`. This row lets the human delete one, which matches END_PROTECTED's intent: a protected
|
||||
end goes to the human (sage-0525).
|
||||
|
||||
## What this row does
|
||||
|
||||
1. **Human-only delete of a creative instance.** Pass the actor into `deleteRefusal`, and through every
|
||||
caller: the broker's check at the verb, the launcher pass's `set op delete`, the CLI and the Console.
|
||||
- A creative definition (`CREATIVE_DEFINITIONS`) whose actor is the business file's `human` passes this
|
||||
check and goes on to the remaining checks (references, kept, credentials).
|
||||
- Any other actor still gets a refusal. Use the code `creativeHumanOnly` gives
|
||||
(`organization-creative-human-only`), so the refusal says why.
|
||||
- Every other END_PROTECTED definition (the thread definitions that aren't creative, such as the chief
|
||||
of staff) still refuses `organization-definition-refused` for every actor, the human included.
|
||||
2. **Fire stays as it is.** `role.fire` and `instance.fire` keep refusing END_PROTECTED for every actor.
|
||||
REQ-COS-3's fire is the chief's action, and the chief can never hire a creative instance.
|
||||
3. **Agents page.** Row 194 hides Delete on `endProtected`. Offer Delete on a creative instance only on the
|
||||
human's page, from the same server predicate, and never on the tester listener. Add one browser test for
|
||||
each side.
|
||||
4. **Persona file.** Say in BUILD.md what happens to `<configDir>/personas/<business>/<instance>.md` on
|
||||
delete. The smallest choice is to leave it in place and record that. If you remove it, open it with
|
||||
`O_NOFOLLOW` as row 213 reads it, and add a test.
|
||||
5. **DEFERRED.** Close row 194's DEFERRED entry for human delete of a creative entry, and name this row in
|
||||
it.
|
||||
|
||||
## Boundaries
|
||||
|
||||
- No change to who may add or change a creative instance (M10), or to `role.hire`'s bounds.
|
||||
- No change to fire, veto or `launch.keep`.
|
||||
- No test touches `~/.mosaic-dev`, `~/.config/mosaic-dev`, the live units, a slot file, .53 or .54.
|
||||
|
||||
## Gate
|
||||
|
||||
Webby approves the manifest. On Sage's slot, every touched test file passes whole, along with the
|
||||
business, bus, cli and webui suites whole and every `scripts/test-*.sh`. Two mutants must be killed: one
|
||||
that lets a non-human actor delete a creative instance, and one that lets the human delete a non-creative
|
||||
END_PROTECTED instance.
|
||||
Reference in new issue
Block a user