Replaces #2068, which was written before #2043 landed. It is on main now (e1821fe3).
On main, answerSetting in src/actions/setting_ask.ts calls changeCapacity(app, actor, key, null) (line 51) before it closes the findings (lines 58-67). If every close is refused, the setting is put back anyway, the caller gets forbidden, the page says "only a forge admin puts a setting back", which is false, and the finding stays open.
Done looks like:
[ ] Before changeCapacity runs, it is known that at least one finding can be closed by this actor (or the close happens first and is the gate).
[ ] A test where every close is refused (for example, the finding is on a mirror, or the actor cannot write to its repository) shows the setting unchanged and an error that says why.
[ ] The existing Keep and Put back tests still pass.
[ ] The dead f.kept === undefined guard in the urgent hand-over in src/crew/sentinel.ts (around line 666) is dropped: setting findings are never urgent.
Files: src/actions/setting_ask.ts, src/crew/sentinel.ts, the setting-ask test.
Replaces #2068, which was written before #2043 landed. It is on main now (e1821fe3).
On main,
answerSettingin src/actions/setting_ask.ts callschangeCapacity(app, actor, key, null)(line 51) before it closes the findings (lines 58-67). If every close is refused, the setting is put back anyway, the caller getsforbidden, the page says "only a forge admin puts a setting back", which is false, and the finding stays open.Done looks like:
changeCapacityruns, it is known that at least one finding can be closed by this actor (or the close happens first and is the gate).f.kept === undefinedguard in the urgent hand-over in src/crew/sentinel.ts (around line 666) is dropped: setting findings are never urgent.Files: src/actions/setting_ask.ts, src/crew/sentinel.ts, the setting-ask test.