Repository navigation
Closed
Closed
chore(shared-copies): ship the medium resolver and one rendered-view reference to every view lane#12667
Task
Copy link
Description
Parent
Source: PLAN Phase 8, topic planning-chain-consolidation. Epic: #12646.
Depends on
Outcome
Every view-lane plugin carries the resolver, registry, cascade and yaml-subset copies, and planning, architecture, discovery and debugging share one synced rendered-view reference.
Demo: The shared-copies check passes and each new copy imports.
The Brief (Problem, Goal, Constraints) is in the epic body.
Decisions
- Q52: AC15 covers every view lane, planning chain first.
Key interfaces
Module layout
| Module | Owns | Public contract | Consumers |
|---|---|---|---|
| View settings | medium resolution, publish trust filter, retired-file notices | C1 resolveMedium |
every view lane |
| Medium registry | medium entries, fallback chain order, reachability probes, publish gate call | C2 MediumEntry | view settings, renderer |
| View renderer | view kinds (plan, brainstorm, design), templates, redraw binding, shared chrome | C2 render, C5 |
every view lane |
| Surface registry | interview surfaces (terminal, page, shared session) | C2 SurfaceEntry, resolveSurface |
planning:interview |
| Page input | lock and comment events, missed-input sweep | C4 | review pages, interview pages |
Dependency direction: skills -> view settings and renderer -> registries -> external providers (Artifact service, hosted publisher, tunnel), each contained in one registry entry. Registries never call skills. Each shared module has one canonical copy synced into each plugin (ADR 0019).
Conventions followed
- docs/adr/0075 (config cascade) via lib/config-cascade.mjs; docs/adr/0019 (shared copies, scripts/shared-copies.txt, sync-shared-copies.sh); docs/contracts/rendered-views/README.md:813-816 (publish trust); lib/view-runtime.js (hash-pinned runtime,
copybinding); lib/session-bridge (loopback page events); docs/standards/design-for-change.md:26 (add a variant by addition); plugins/visualization/reference/html-chrome.html (chrome tokens, accessibility floor). - Net new: the three registries and the lane registration (no existing pattern holds a variant set for views); the redraw binding (none exists in lib/view-runtime.js); the PageInput shape outside the shared session; a design view kind in the builder.
- Challenges a pattern: per-skill medium lists in ~20 skills and four unsynced rendered-view.md copies (single source of truth); lib/publish-gate.mjs trustedMedium and review's digest-policy.mjs resolveMedium as two resolvers with different rules; the 1:1 interview page's own settings chain (.claude/interview-surface.json) outside ADR 0075; docs/contracts/config-cascade/README.md:659 marking rendered-views "conforms".
Done when
- AC4 / AC15 (enabling): the shared-copies script passes --check and --check-bump; for each new carrier the view-settings copy imports.
Out of scope
- Changing any skill's behaviour (per-plugin slices)
Metadata
Metadata
Assignees
Labels
No labels
Type
Fields
No fields configured for Task.
Activity
melodic-automation-lanes commentedon Nov 3, 2026
This records a re-fire of an earlier refusal, not a new refusal. The lanes kill switch stopped run 41576258964, the work-resolve-issue run that
agent-readystarted, before it did any work; that run ended at 2026-11-03T04:37:16Z. work-unblock has now removed and addedagent-readyback to start a fresh run. A kill-switch refusal is no fault in this issue or the lanes, so it never counts against later re-fires; after limits.limit-stops-per-issue of them since a person last addedagent-readyor a run last reported, work-unblock waits longer before each one, up to 24 hours.github-actions commentedon Nov 3, 2026
melodic-automation-lanes commentedon Nov 3, 2026
This records a re-fire of an earlier refusal, not a new refusal. The lanes kill switch stopped run 41581255310, the work-resolve-issue run that
agent-readystarted, before it did any work; that run ended at 2026-11-03T05:40:38Z. work-unblock has now removed and addedagent-readyback to start a fresh run. A kill-switch refusal is no fault in this issue or the lanes, so it never counts against later re-fires; after limits.limit-stops-per-issue of them since a person last addedagent-readyor a run last reported, work-unblock waits longer before each one, up to 24 hours.github-actions commentedon Nov 3, 2026
21 remaining items
Merge main into feat/12667-shared-copies after batches A and B
kyle-sexton commentedon Nov 3, 2026
Closing: delivered across three PRs, each linked with
Refs: #12667(split so each review pass could read its diff whole; see #12965 for why pr-verify could not pass the last part).Done-when, "AC4 / AC15 (enabling): the shared-copies script passes --check and --check-bump; for each new carrier the view-settings copy imports":
view-settings.mjscopyrendered-view.mdcopy synced fromlib/rendered-view.md--checkand--check-bump:scripts/sync-shared-copies.sh --checkpassed on each PR's head (606, 620 and 643 registered copies), and--check-bump origin/mainexited 0 on each.lib/view-settings.test.mjs's "every registered copy imports its sibling modules and resolves" (feat(lib): sync the view-settings copies into adhd and ai-briefing #12917) runs everyview-settings.mjscopy listed inscripts/shared-copies.txt, all nine new carriers included; it passed 36 of 36 on chore(shared-copies): ship the medium resolver and one rendered-view reference to every view lane #12792's head and in itsci-statusruns.The per-plugin migrations this unblocks are #12668-#12741.
chore(shared-copies): ship the medium resolver and one rendered-view …
fix(shared-copies): name the plugin root as a placeholder in the rend…