☰
ship.sh was never pushing package.json, so the Files tab sat at 2.0.353 without the agent_permissions block
v2.0.355: Stop writing the sentinel 'reclaimed' into owner (issue #79): owner is the AI-thread name and tiles mode rend…
v2.0.354: Declare pup's agent-permission posture (wiki#156): which pup verbs are genuinely read-only, and the four that…
v2.0.353: Native dialog handling actually works now: detection scanned only the legacy sessionId so it never fired for…
WHY-CFT: distinguish the THREE banner mechanisms (launch flag, raw CDP, chrome.debugger), after John photographed nb's…
v2.0.352: Upgrade the vendored module to 2.19.1, which measures phrase headroom with an offscreen probe instead of an e…
v2.0.351: Discover Hydrogen's control API instead of hardcoding a container-side port: the bridge runs on the desktop w…
v2.0.350: Upgrade the vendored module to 2.17.0, which refuses to report selfCheck from a collapsed pane and adds check…
v2.0.349: Relay the control API byte-for-byte instead of parsing and re-emitting it, so an upstream number or a non-JSO…
v2.0.348: Upgrade the vendored module to 2.5.0, whose gutter row finds the nearest scrolling ancestor instead of naming…
v2.0.347: Upgrade the vendored module to 2.4.0, whose gutter row measures the panel against its own mount container rat…
v2.0.346: Adopt the fleet gutter: 16px a side on the panel's mount container so its border box is the pane minus 32, an…
v2.0.345: Upgrade the vendored newbie-panel module to 2.1.2, which decouples the module version from the pack so docume…
v2.0.344: Detect native JS dialogs instead of hanging: a blocking alert, confirm, prompt or beforeunload is now reporte…
v2.0.343: Upgrade the vendored newbie-panel module from 2.0.3 to 2.0.5, which accepts both the declared and device-snap…
v2.0.342: The newbie panel is now the shared adom-ui-design module instead of a hand-rolled copy: pup serves newbie-pan…
WHY-CFT: replace the Firefox feasibility reasoning with a measured spike (13 of 15 pup verbs work, the 2 failures are e…
WHY-CFT: image paths are resolved from the PAGE ROOT, not the markdown file directory, so they need the docs/ prefix
WHY-CFT: prove reasons 1, 2 and 4 with measured screenshots (CfT 148 vs branded 151), correct a claim that did not surv…
v2.0.341: The prompts panel renders two columns in a real dock pane: the collapse breakpoint moves from 760px to 620px…
v2.0.340: The dashboard header mark is the same drawing as the favicon and the dock card, so the page no longer shows o…
v2.0.339: The dock tab wears the line-drawing pup mark again: moving the dock to the bridge-served dashboard in 2.0.337…
v2.0.338: Send to AI waits 120 seconds (the editor can take 60s just to create a tab), proves delivery by delivered_to…
v2.0.337: One dashboard, not two: the dock now opens the live-windows dashboard, which wears the contract regions (44px…
v2.0.336: Send to AI gates on the shell release version from GET /updater/status (updater.current_version, the one endp…
v2.0.335: Dashboard fills its surface at every width: the hardcoded 1180px layout cap is gone (adom-ui-design 1.17.0),…
v2.0.334: Send to AI now uses the ONE-CALL run-prompt {new:true} contract (the old new-then-run-prompt{sid} flow could…
v2.0.333: adom-ui-design 1.13.0 (John's five rulings on the reference) + Send to AI UN-PARKED. (1) The X now FULLY clos…