Skip to content

Undo reactivates closed assets; guard passes; slack-bot fixes; rooms survey - #45

Merged
jallers merged 4 commits into
proposed_type_script_api_versionfrom
claude/admiring-ride-vsq4sa
Nov 7, 2026
Merged

jallers merged 4 commits into
proposed_type_script_api_versionfrom
claude/admiring-ride-vsq4sa

Conversation

@jallers

@jallers jallers commented Nov 7, 2026

Copy link
Copy Markdown
Contributor

Undo now reactivates a closed asset before deleting it. This needed a guard fix, plus two small fixes from the slack bot's B4.

  • Undo: Agility refuses to delete a closed asset. batch.reversible now puts a Reactivate before the Delete of any asset that's closed, and lists those in reactivated.
  • Guard passes: a guarded batch used to skip an asset's second command silently, because both commands were checked against the same pre-send ChangeDate. Now that command goes in a second pass, only if the first applied, checked against a freshly read ChangeDate.
  • Slack bot (B4): number lookups remember a missing type in the shared TypeCache, not per transport. AssetState 200 now reads as "Template".
  • Plan 001: ticks B3 and B4 (k6i-agility-slack-bot#32, #34) and adds the agility-rooms survey (requirements for A7, attachments, and open questions for the rooms track).

All 113 unit tests pass. On v1sdktesting, undoing a batch whose story was closed afterwards reactivates and deletes it, and TK-01001 resolves as "Template".


Generated by Claude Code

Agility refuses to Delete a closed asset (Violation'AssetCannotDeleteClosed),
so batch.reversible now reads the state of every asset its reverse deletes
and puts a Reactivate before the Delete of each closed one (`reactivated`).

That puts two commands on one asset, which a guarded batch could never send:
both were stamped with the ChangeDate read before the batch, so the second
always matched nothing and was silently skipped. The guard now sends an
asset's later commands as later passes, each only if the previous one
applied and guarded on the ChangeDate read just after it (sendPasses,
passesOf); runBatch and sendGuarded use it. A failure after an earlier pass
applied throws GuardedPassError / BatchSendError with what applied.

Live (v1sdktesting): a batch-created Story, closed afterwards, is
reactivated and deleted by its undo. Plan 001 records the finding, the
multi-value-list-adds finding from the slack bot, and the agility-rooms
survey (A7 requirements, Track D questions).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016NSWj9gL1oCubj5e2anVkb
Track B is done on the bot side.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016NSWj9gL1oCubj5e2anVkb
From the slack bot's B4:
- resolve.numbers remembered roots an instance lacks per transport, so a
  server building a client per user paid the failed-then-retry round trip
  on every lookup. With a TypeCache (the client passes its schema's) the
  cache's own record of a missing type (null) is that memory, shared by
  every client of the instance. Without one, it stays per transport.
- AssetState 200 (a template) arrives as the code "200". ASSET_STATE_CODES
  gains Template: 200, and assetStateOf reads any spelling by name; rest-1
  and resolve use it. Live: TK-01001 on v1sdktesting is "Template".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016NSWj9gL1oCubj5e2anVkb
From the slack bot's live checks (2026-11-07): an update giving a
multi-value relation a plain list adds its members rather than replacing
the list, and Agility refuses to Delete a closed asset.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016NSWj9gL1oCubj5e2anVkb
@jallers
jallers merged commit 94e9431 into proposed_type_script_api_version Nov 7, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants