openpencil/crates
Fini f4c228c7ae feat(editor): export a deck as a self-contained slideshow html file
A presenter often cannot install anything: the deliverable has to be
one file that opens in whatever browser the conference laptop has,
with no network. The File menu on a deck document now writes a single
.html whose slides are structured markup — real selectable text,
inline SVG icons and shapes, CSS fills — positioned by the resolved
layout the canvas painted, so the browser never re-runs layout. Any
node the emitter cannot express faithfully is rastered alone into a
data URI at its exact rect rather than dropped, so a fully opaque
board degrades to the flat image this replaces and nothing ever goes
missing. Click or the slideshow key set advances; a counter names the
current slide.

Claude-Session: https://claude.ai/code/session_01FqKQqNj8exYwopGDpYUU7x
2026-08-03 21:30:06 +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-cli chore(rust): align workspace checks 2026-08-01 16:19:26 +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(editor): export a deck as a self-contained slideshow html file 2026-08-03 21:30:06 +08:00
op-editor-host-core feat(collab): add authenticated p2p collaboration 2026-07-29 00:06:58 +08:00
op-editor-ui feat(editor): export a deck as a self-contained slideshow html file 2026-08-03 21:30:06 +08:00
op-figma refactor: typed error enums across the whole workspace 2026-07-27 21:09:06 +08:00
op-git fix(ci): address rust check failures 2026-06-19 03:03:33 +08:00
op-host-desktop feat(editor): export a deck as a self-contained slideshow html file 2026-08-03 21:30:06 +08:00
op-host-native feat(editor): export a deck as a self-contained slideshow html file 2026-08-03 21:30:06 +08:00
op-host-services feat(editor): export a deck as a self-contained slideshow html file 2026-08-03 21:30:06 +08:00
op-host-web feat(editor): export a deck as a self-contained slideshow html file 2026-08-03 21:30:06 +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 refactor: typed error enums across the whole workspace 2026-07-27 21:09:06 +08:00
op-i18n feat(editor): export a deck as a self-contained slideshow html file 2026-08-03 21:30:06 +08:00
op-mcp fix(mcp): tolerate a trailing separator on a program DSL line 2026-07-31 21:00:50 +08:00
op-opmerge chore(sync): integrate origin/v0.8.2 interactions and retry batch 2026-07-18 13:11:52 +08:00
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