Task: Close the entity-shell gaps a second entity would inherit

Table of Contents

This page documents a task in the Implement every IAM entity in the web client story. It captures the goal, current status, acceptance, and any notes or results.

1. Goal

Close the Tier 1, Tier 2 and Tier 3 findings in gaps.org so the second entity does not inherit them: a get-one route so a deep link resolves past the first page, a read-only historical mode so opening a version opens that version, sorting on the underlying value, remembered column visibility and order, keyboard navigation, validation on blur, the unsaved-changes prompt, the searchable foreign-key select, and a negative-path verification harness. gaps.org is updated to say what closed and what did not.

2. Status

Field Value
State DONE
Parent story Implement every IAM entity in the web client
Now Nothing.
Waiting on Nothing.
Next Nothing.
Last touched 2026-09-20

3. Acceptance

  • Each Tier 1, 2 and 3 finding is met or explicitly re-scoped with a reason recorded in gaps.org.
  • A deep link to a record beyond the first page resolves.
  • Opening a historical version shows that version, read-only.
  • The verification script exercises a rejected or empty case as well as a good one.
  • Sorting uses the underlying value, not the displayed string.

4. Plan

(Implementation strategy. Written when work starts; key decisions are distilled into the parent story's * Decisions at close, but the plan itself stays — it is the historical record of what we did.)

5. Notes

6. Test Scenarios

Manual QA scenarios (scaffolded via compass add test_scenario) that verify this task. Link new ones here as they're created; the scenario doc itself links back via its "Verifies task" field.

Scenario State Notes
     

7. PRs

PR Title
   

8. Review

Comment summary File Decision Notes
       

9. Result

Superseded on 2026-09-23. This task closes gaps that a second entity would inherit from the shell, and no entity goes through the shell any more. The shell and gaps.org are both gone, so there is nothing left to close.

Emacs 29.3 (Org mode 9.6.15)