openpencil/crates
Kayshen-X da83157b73 feat(html): overhaul HTML and browser-snapshot import fidelity
A multi-phase campaign to make importing real modern web pages
(Tailwind output, landing pages, component-library HTML) faithful.

Layout: bake CSS transforms (translate/scale/rotate incl. the
translate(-50%,-50%) centering idiom), emulate flex-wrap via row
chunking, honor grid span/line placement, apply position:relative
offsets through synthetic wrapper frames (jian has no offset-without-
reflow), aspect-ratio, per-child auto-margin alignment, and a
configurable viewport height (threaded through the CLI and MCP).

Content: list markers (incl. reversed/roman/alpha), basic table layout
(tr->row, colspan), <picture>/srcset candidate selection, @font-face
visibility warnings, background-size/position mapped to the image
fill's crop transform, and text-shadow.

Diagnostics: replace the untyped Vec<String> warnings with a typed
ImportWarning enum (stable per-variant codes, byte-identical Display so
CLI/MCP output is unchanged), localized into all 15 locales, surfaced
through a non-modal post-import diagnostics panel wired into both hosts.
The desktop path now forwards every warning, not just the first.

Snapshot import: fix inverted child paint order (the cause of whole
overlays vanishing under full-bleed backgrounds), stop clipping text to
the browser-measured box under font-metric drift, vectorize inline SVG
to editable paths, and capture per-corner radii, background paint,
position/z-index, video posters, page background, and open shadow DOM.

The extension's tokenless snapshot-ingress route lives here too
(op-host-services), scoped to a chrome-extension origin and the single
insert-only import tool.

Known follow-up: rich inline text runs (links/code spans + wrapping)
can still overlap in the snapshot path.
2026-08-04 21:47:49 +08:00
..
op-acp fix(editor): async hygiene — safe block_on, bounded acp channels, thread teardown 2026-07-26 13:19:34 +08:00
op-ai feat(agent): surface a quality credential after generation 2026-07-28 00:29:39 +08:00
op-ai-skills feat(ai): give the planning corpus a presentation-deck tier 2026-08-02 11:02:33 +08:00
op-auth-bridge fix(panels): scroll the template grid on trackpad, and lay the deck out 2026-08-02 21:21:13 +08:00
op-chrome-extension-core feat(extension): add OpenPencil web-capture Chrome extension 2026-08-04 21:43:01 +08:00
op-cli feat(html): overhaul HTML and browser-snapshot import fidelity 2026-08-04 21:47:49 +08:00
op-codegen refactor: typed error enums across the whole workspace 2026-07-27 21:09:06 +08:00
op-collab chore(rust): align workspace checks 2026-08-01 16:19:26 +08:00
op-collab-policy-file fix(collab): harden p2p collaboration against resource exhaustion 2026-08-01 09:48:23 +08:00
op-collab-relay-client fix(collab): close review follow-ups and align the reauth budget test 2026-08-01 11:42:10 +08:00
op-collab-relay-control-plane refactor(collab): split the control-plane pairing wire tests 2026-08-03 21:05:11 +08:00
op-collab-relay-locator-hsm feat(collab): add isolated PKCS11 locator signer 2026-08-01 16:35:59 +08:00
op-collab-relay-locator-server feat(collab): replace public invites with 10-char region-tagged pairing codes 2026-08-02 08:31:13 +08:00
op-collab-relay-protocol feat(collab): replace public invites with 10-char region-tagged pairing codes 2026-08-02 08:31:13 +08:00
op-collab-relay-server feat(collab): minimize the relay credential and confirm the owner on LAN 2026-08-01 14:24:46 +08:00
op-collab-smoke feat(collab): allow cross-account collaboration 2026-08-01 13:01:24 +08:00
op-collab-transport fix(collab): close a gesture whose release never arrives 2026-08-03 21:15:32 +08:00
op-config-store test(desktop): keep persistence tests out of the real user config 2026-07-28 00:29:39 +08:00
op-design-lint fix(agent): repair text that is invisible against its own background 2026-08-02 21:21:13 +08:00
op-editor-core feat(html): overhaul HTML and browser-snapshot import fidelity 2026-08-04 21:47:49 +08:00
op-editor-host-core feat(collab): add authenticated p2p collaboration 2026-07-29 00:06:58 +08:00
op-editor-ui feat(html): overhaul HTML and browser-snapshot import fidelity 2026-08-04 21:47:49 +08:00
op-figma refactor: typed error enums across the whole workspace 2026-07-27 21:09:06 +08:00
op-git
op-host-desktop feat(html): overhaul HTML and browser-snapshot import fidelity 2026-08-04 21:47:49 +08:00
op-host-native feat(html): overhaul HTML and browser-snapshot import fidelity 2026-08-04 21:47:49 +08:00
op-host-services feat(html): overhaul HTML and browser-snapshot import fidelity 2026-08-04 21:47:49 +08:00
op-host-web feat(html): overhaul HTML and browser-snapshot import fidelity 2026-08-04 21:47:49 +08:00
op-host-web-server refactor: dedupe cross-crate code and converge hardcoded literals 2026-07-26 11:24:22 +08:00
op-html feat(html): overhaul HTML and browser-snapshot import fidelity 2026-08-04 21:47:49 +08:00
op-i18n feat(html): overhaul HTML and browser-snapshot import fidelity 2026-08-04 21:47:49 +08:00
op-mcp feat(html): overhaul HTML and browser-snapshot import fidelity 2026-08-04 21:47:49 +08:00
op-opmerge
op-orchestrator fix(canvas): attach frame-name labels to the frames they name 2026-08-02 23:43:33 +08:00
op-pen-loader feat(editor): record what a document is for as a scenario tag 2026-08-02 23:44:20 +08:00
op-process-io
op-rpc-transport fix(mcp): authenticate the live endpoint and degrade the bootstrap cache 2026-08-01 12:23:09 +08:00
op-smoke feat(agent): add a fixed-input modify mode to the smoke harness 2026-07-31 21:06:35 +08:00
op-util feat(collab): add authenticated p2p collaboration 2026-07-29 00:06:58 +08:00
op-web-sdk refactor: typed error enums across the whole workspace 2026-07-27 21:09:06 +08:00
CLAUDE.md feat(collab): add authenticated p2p collaboration 2026-07-29 00:06:58 +08:00