The overview now requests the new list action and its rows carry only the memo id, version, question, live approval status and the person's own responses without notes. Opening a memo still asks read; every act asks its own action. The fixture Flex Auth package admits list under a re-derived pin. Not deployable until flex-auth answers INFD-IN-0008. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Assistant: claude-code Assistant-Model: opus Assistant-Process: 359683@bnt-lap001 Assistant-Session: eebdc939-7a9b-4e50-9d39-c8437e8a14ec
4.2 KiB
| id | type | title | domain | repo | status | owner | topic_slug | created | updated | related | origin | origin_ref | state_hub_workstream_id | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| INFD-WP-0004 | workplan | Comfortable decision review — a `list` action for the overview | infotech | informed-decision | active | claude | netkingdom | 2026-09-21 | 2026-09-21 |
|
demand | founder 2026-09-21: 'We should be able to review comfortably though.' | 2a57162a-85ad-5fd6-87d5-1e89ae2e0782 |
Comfortable decision review
The INFD-WP-0003 overview is live, but in production every row shows "The
permission service refused access", even after a fresh sign-in. Each row asks
Flex Auth for read. The served informed-decision.compact-sitting v2
package gates read with a bar designed for binding:
- The rule requires
assurance.atto be at most 900 seconds old. KeyCape carries earlier authentication timestamps forward (INFD-IN-0005), so a browsing session rarely meets it. - The package does not name the three
SECRETS-WP-0010-T03-*memos at all.
The founder wants to be able to review decisions comfortably. The plan is to split seeing your decisions from reviewing one for binding:
- Add a new consumer action,
list, with limited disclosure. It has a comfortable identity bar, and flex-auth admits it. readand every act keep their strict bar.
Establish why today's rows are refused
id: INFD-WP-0004-T01
status: done
priority: high
state_hub_task_id: "513e91cf-6063-5a39-9f4d-af3976bb29a8"
Waiting on the operator's read-only query of the live policy_observations:
auth_age_s, groups, level and methods for the latest checks. If the age is
over 900, INFD-IN-0005 is confirmed as the cause for the eight sitting memos.
If a group, level or method differs from the rule, that is a separate identity
regression and needs fixing regardless of list. Record the finding under
docs/evidence/.
Finding (2026-09-21): only freshness fails. auth_age_at_check_s was
1744 against 900, and groups, sources, level and methods all match. See
docs/evidence/2026-09-21-overview-read-refusal.json.
Request the list policy from flex-auth
id: INFD-WP-0004-T02
status: wait
priority: high
state_hub_task_id: "3d5f51ac-c226-5489-bfb6-d5829c70e6f6"
The request is drafted in docs/flex-auth-request-list-action.md and recorded
as INFD-IN-0008, owned by flex-auth. Sent 2026-09-21 to the flex-auth inbox
(message a7b9ef3b-f95c-4c50-bfc5-7628d16881f6); waiting on flex-auth. Done when flex-auth publishes a package, version
and digest that answers list, with fixtures.
Consumer side: list action and limited-disclosure overview
id: INFD-WP-0004-T03
status: done
priority: high
state_hub_task_id: "e13ef7d2-bac0-5e2b-930d-4368e77bf1cb"
- Add
listtopolicy.ACTIONSand todocs/flex-auth-review-contract.md. - The overview asks
listper row instead ofread. It renders only the memo id and version, the question, the live engine status, and the person's own responses (verb, version, time and submission state; no notes). - The review page keeps
read, and every act keeps its own action. - Tests:
listallowed whilereadis denied still shows the rows, and opening one is still refused; alistdeny redacts the row; no brief, packet or notes leak on the home page.
This task can be built and tested against fixtures before T02 lands, but it
must not be deployed before T02. The live v2 package denies list, so
deploying early would change nothing visible.
Done 2026-09-21: the source is ready and not deployed. There are 436
tests. The fixture Flex Auth package adds list, and its re-derived pin has
digest sha256:f45e366d…. Chromium passes 13 of 13 through the real Flex Auth.
Admit and roll out
id: INFD-WP-0004-T04
status: wait
priority: high
state_hub_task_id: "65d6dd6e-208a-54ee-93c0-40b6ab1d8adf"
After T02, update deploy/sitting-admission.json with the new package,
version and digest. The operator then applies the configuration and the image
built from T03. Verify that the overview shows all eleven memos without a fresh
MFA, that opening a memo still enforces the strict read rule, and record the
rollout in docs/evidence/.