@@ -34,12 +34,71 @@ extension-policy references). No Mill code changes expected beyond
3434possibly a seed tweak; if the dry run finds a small fixable gap, it
3535rides per the below-goal-granularity rule.
3636
37+ ## Capture-path research — DELIVERED 2026-08-13 (deliverable 2)
38+
39+ Re-verified ADR-0030 against primary sources (Chrome Enterprise /
40+ Edge policy docs, MV3 docs, Chromium's own save-page design doc);
41+ the ADR's matrix held. New confirmations beyond it, each recorded at
42+ its home: ` ExtensionDeveloperModeSettings ` confirmed a separate
43+ policy from the install blocklist (ADR-0030 updated from
44+ "unconfirmed"); per-user native-messaging registration needs NO
45+ admin rights on either OS (ADR-0003 scope note added — its
46+ rejection stays protocol-authorship-only); self-hosted CRX
47+ allowlisting via ` ExtensionSettings ` /` ExtensionInstallForcelist ` /
48+ ` ExtensionInstallSources ` is standard, documented practice with a
49+ live financial-sector precedent (an engineering blog documenting
50+ exactly this internal-CRX flow); ` activeTab ` is the
51+ permissions-minimal review story for an IT ask (no install-time
52+ warnings, user-gesture-scoped); ` DownloadRestrictions=3 ` (the only
53+ policy that would kill the save-page floor) is explicitly
54+ rare/not-recommended per Google's own guidance; bookmarklets fight
55+ the SITE's CSP (real browser behavior, a documented spec-vs-impl
56+ gap), not just IT policy — last-resort verdict confirmed; a local
57+ TLS-interception proxy is rejected as an architectural non-starter
58+ (collides with the enterprise MITM CA; sees network bytes, never
59+ rendered DOM).
60+
61+ ** Verdict (unchanged from ADR-0030, now source-hardened): two-tier.**
62+ Save-page-then-parse is the guaranteed floor and is already shipped;
63+ the ADR-0003 extension (allowlisted, self-hosted) is the target
64+ end-state, gated on one specific IT ask whose outcome is genuinely
65+ unknowable without asking.
66+
67+ ** Owner's at-work checklist (the unknowables — nothing here is
68+ researchable further from outside):**
69+ 1 . Chrome or Edge? (Policies identical either way — just scopes
70+ which console.)
71+ 2 . ` chrome://extensions ` / ` edge://extensions ` : is the Developer
72+ Mode toggle present and flippable? Try "Load unpacked" with a
73+ trivial extension.
74+ 3 . The precise IS&C ask: "Can an internally-reviewed, open-source
75+ extension be added via ` ExtensionSettings `
76+ (` installation_mode: allowed ` ), self-hosted via
77+ ` ExtensionInstallSources ` if not store-listed?"
78+ 4 . Bookmarklet probe on a real Confluence page — CSP refusal in the
79+ console, or a policy block?
80+ 5 . ⌘S a Confluence page ("Webpage, Complete") — does the saved
81+ ` .html ` carry the rendered body including dynamic macros/panels?
82+ (The one Confluence-specific fidelity unknown in the save-page
83+ floor.)
84+ 6 . ` chrome://version ` build number (Local-Network-Access enforcement
85+ status; affects the bookmarklet path only).
86+ 7 . Copy a full page and a small selection; run the seeded
87+ "Example: Clipboard inspector" — which ` text/html ` flavors
88+ actually land?
89+
90+ Full comparison table with per-row confidence and all source URLs is
91+ in the session's research report; the rows' conclusions are the ADR
92+ updates + verdict above.
93+
3794## Acceptance (checkable)
3895
3996- [ ] The dry run's gap list is written into this file, each gap
4097 named with what it would take.
41- - [ ] The capture-path comparison (extension vs. fallback ladder,
98+ - [x ] The capture-path comparison (extension vs. fallback ladder,
4299 with policy precedent and sources) is written into this file,
43- decision-ready for the owner.
100+ decision-ready for the owner — delivered above, 2026-08-13,
101+ with the ADR-0030/ADR-0003 corrections landed in the same
102+ change.
44103- [ ] Goal 0021's Phase 4 bullet points here and 0021's archival is
45104 unblocked (owner call remains its bar).
0 commit comments