@@ -13,19 +13,19 @@ path-notes click-through + Phase 6 fully shipped + three-OS CI +
1313managed-mcp.json topbar pill + catalog-drift cron + sync-sub-agents +
1414in-app error log + per-OS capability split + sync-mcp + sync-permissions
1515+ drawer cross-references env-vars catalog + sync-keybindings +
16- sync-cli-reference + hooks catalog pass #2 + drawer cross-reference
17- follow-ups slated ).
16+ sync-cli-reference + hooks catalog pass #2 + drawer cross-references
17+ permissions.modes ).
1818
1919## Next-up candidates
2020
2121A digest of what's open across the four tracks below — pick from
2222here, then jump to the relevant section for shape and rationale.
2323
24- - ** Drawer cross-references for ` permissions.modes ` and
25- ` hooks.events ` ** (inspector polish) — concrete coding follow-ups to
26- the env-vars drawer wire-up (2026-05-07). Both catalogs are loaded
27- through ` read_catalog ` already; the joinpoints are obvious. See
28- Inspector polish § "Open work".
24+ - ** Drawer cross-reference for ` hooks.events ` ** (inspector polish) —
25+ concrete follow-up to the env-vars + permissions.modes drawer
26+ wire-ups. Catalog already loads through ` read_catalog ` ; main
27+ open question is whether the array-typed ` hooks.<EventName> ` rows
28+ fit the existing drawer shape. See Inspector polish § "Open work".
2929- ** Rail navigability decision** (inspector polish) — spec question,
3030 not coding work; needs a fork-vs-fork call before any UI lands.
3131- ** ENV-layer / ` env.* ` -row seam** (inspector polish) — UX question,
@@ -310,18 +310,6 @@ Phase numbering matches the spec.
310310
311311Open work (what to pick up next within this track):
312312
313- - ** Drawer cross-references — ` permissions.modes ` for
314- ` permissions.defaultMode ` .** The permissions catalog's 6-record
315- ` modes ` array (default / acceptEdits / plan / auto / dontAsk /
316- bypassPermissions) carries prose richer than the short blurbs in the
317- settings JSON Schema. When a row's keyPath is
318- ` permissions.defaultMode ` , look up the row's current (or default)
319- value in ` permissions.modes ` and surface that mode's description in
320- the drawer header — same pattern as the env-vars wire-up (pure
321- helper in ` catalog.ts ` , ` resolveDescription ` extension in
322- ` KeyDrawer.tsx ` , case-sensitive lookup since mode names are
323- camelCase ASCII). Validates a third drawer-side consumer of a
324- non-settings catalog after env-vars and (if shipped first) hooks.
325313- ** Drawer cross-references — ` hooks.events ` for ` hooks.<EventName> ` .**
326314 Hooks pass #2 (2026-05-08) lifted handler types and per-event
327315 schemas into ` catalog/hooks.json ` . The natural drawer consumers are
@@ -359,6 +347,26 @@ Open work (what to pick up next within this track):
359347
360348Shipped:
361349
350+ - ** Drawer cross-references ` permissions.modes ` for
351+ ` permissions.defaultMode ` .** ✅ shipped 2026-05-08. When a row's
352+ keyPath is ` permissions.defaultMode ` and the row's effective value
353+ (set or ` catalog.default ` for unset) matches one of the 6 cataloged
354+ modes, the drawer header surfaces that mode's specific prose
355+ (` acceptEdits ` → "Automatically accepts file edits and common
356+ filesystem commands…") instead of the settings catalog's first-line
357+ placeholder ("Default permission mode."). Joins through
358+ ` findPermissionMode(name) ` in ` src/lib/catalog.ts ` (name-indexed Map
359+ built at hydration time) and an extension to ` resolveDescription ` in
360+ ` KeyDrawer.tsx ` . Case-sensitive lookup — mode names are camelCase
361+ ASCII and case-folding would feed false matches for user typos.
362+ Defensive: only attempts the lookup when `typeof row.value ===
363+ "string"`, so a malformed settings.json with a non-string value
364+ falls back cleanly to the settings catalog prose. Undocumented
365+ enum values (` delegate ` — experimental agent-team only, in the JSON
366+ Schema enum but not in the upstream permissions docs) also fall
367+ back to the settings catalog. Second drawer-side consumer of a
368+ non-settings catalog after env-vars; further validates the seam for
369+ ` hooks.events ` next.
362370- ** Drawer cross-references env-vars catalog.** ✅ shipped 2026-05-07.
363371 When a row's keyPath is ` env.<VAR> ` and ` <VAR> ` is documented in the
364372 env-vars catalog (220 entries upstream), the drawer header surfaces
0 commit comments