Merge main into domain/oficina-works
.amadan/ci.d/10-gate+130 −3.gitignore+8 −0.impeccable/config.json+17 −0AGENTS.md+112 −2PRODUCT.md+222 −0core/src/abi.rs+140 −1core/src/fragment.rs+524 −13core/src/lib.rs+27 −3core/src/snapshot.rs+118 −0core/tests/fragment.rs+556 −2core/tests/snapshot.rs+189 −0docs/superpowers/plans/2026-08-31-formatting-and-export.md+253 −0docs/superpowers/plans/2026-09-01-live-sync.md+117 −0docs/superpowers/plans/2026-09-01-search.md+116 −0docs/superpowers/plans/2026-09-01-snapshots.md+1056 −0docs/superpowers/plans/2026-09-02-images-links-tables.md+393 −0docs/superpowers/specs/2026-08-30-docs-design.md+61 −6docs/superpowers/specs/2026-09-01-live-sync-design.md+431 −0docs/superpowers/specs/2026-09-01-snapshots-design.md+449 −0docs/superpowers/specs/2026-09-02-word-processor-basics-design.md+729 −0fixtures/align.mjs+150 −0fixtures/align.test.mjs+238 −0fixtures/autoformat.mjs+100 −0fixtures/autoformat.test.mjs+164 −0fixtures/browser-drive.mjs+1145 −0fixtures/build-bundles.mjs+74 −0fixtures/build-editor.mjs+0 −54fixtures/dom-writes.mjs+53 −0fixtures/editor-entry.js+708 −50fixtures/flash-frames.mjs+290 −0fixtures/fonts.mjs+143 −0fixtures/fonts.test.mjs+94 −0fixtures/generate-fragment.mjs+155 −1fixtures/indent.mjs+168 −0fixtures/indent.test.mjs+88 −0fixtures/jump-to.mjs+292 −0fixtures/live-updates.mjs+278 −0fixtures/live-updates.test.mjs+365 −0fixtures/menu.mjs+315 −0fixtures/menu.test.mjs+143 −0fixtures/package-lock.json+11 −0fixtures/package.json+4 −3fixtures/pages.mjs+238 −0fixtures/paste.mjs+143 −0fixtures/paste.test.mjs+154 −0fixtures/shortcuts.mjs+85 −0fixtures/sizes.mjs+156 −0fixtures/sizes.test.mjs+93 −0fixtures/toolbar-roving.mjs+105 −0fixtures/toolbar.mjs+648 −0fixtures/toolbar.test.mjs+518 −0fixtures/vectors/fragment/aligned.binbinaryfixtures/vectors/fragment/fonts.binbinaryfixtures/vectors/fragment/indented.binbinaryfixtures/vectors/fragment/sizes.binbinaryfixtures/vectors/fragment/styled.binbinaryfixtures/wordcount.mjs+118 −0fixtures/wordcount.test.mjs+92 −0go.mod+1 −1internal/core/core.go+218 −100internal/core/core_test.go+124 −0internal/core/testdata/docs_core.wasmbinaryinternal/docs/app.go+23 −2internal/docs/assets.go+176 −39internal/docs/assets_test.go+146 −10internal/docs/brand/icon.svg+44 −0internal/docs/cursor_test.go+429 −0internal/docs/editor_view_test.go+1 −1internal/docs/export.go+353 −0internal/docs/export_test.go+824 −0internal/docs/handlers.go+350 −21internal/docs/hub.go+118 −0internal/docs/hub_test.go+154 −0internal/docs/list_test.go+307 −0internal/docs/menu.go+326 −0internal/docs/menu_test.go+259 −0internal/docs/migrations/0004_doc_snapshots.sql+27 −0internal/docs/models.go+23 −0internal/docs/pages_test.go+169 −0internal/docs/preview.go+312 −0internal/docs/preview_internal_test.go+148 −0internal/docs/render.go+260 −8internal/docs/render_test.go+81 −0internal/docs/search.go+243 −0internal/docs/search_test.go+371 −0internal/docs/seed.go+6 −1internal/docs/selects_test.go+132 −0internal/docs/sizes_test.go+134 −0internal/docs/snapshots.go+143 −0internal/docs/snapshots_test.go+929 −0internal/docs/static/editor.15280b7eedd1868f.js+0 −14internal/docs/static/editor.879cf51cc4b8e027.js+14 −0internal/docs/static/jumpto.a37448e7fcd21855.js+1 −0internal/docs/store.go+314 −34internal/docs/store_test.go+4 −4internal/docs/stream.go+170 −0internal/docs/stream_test.go+309 −0internal/docs/testing.go+11 −0internal/docs/views/head.html+49 −0internal/docs/views/list.html+264 −25internal/docs/views/partials/jumpto.html+118 −0internal/docs/views/show.html+1361 −32internal/docs/views/signin.html+98 −15internal/export/document.go+174 −0internal/export/markdown.go+408 −0internal/export/markdown_test.go+463 −0internal/export/pageone.go+88 −0internal/export/pageone_test.go+211 −0internal/export/pdf.go+1066 −0internal/export/pdf_test.go+705 −0internal/export/pdfread_test.go+344 −0internal/export/sample_pdf_test.go+71 −0internal/fonts/files/LICENSE-OFL-1.1.txt+91 −0internal/fonts/files/LiberationMono-Bold.ttfbinaryinternal/fonts/files/LiberationMono-BoldItalic.ttfbinaryinternal/fonts/files/LiberationMono-Italic.ttfbinaryinternal/fonts/files/LiberationMono-Regular.ttfbinaryinternal/fonts/files/LiberationSans-Bold.ttfbinaryinternal/fonts/files/LiberationSans-BoldItalic.ttfbinaryinternal/fonts/files/LiberationSans-Italic.ttfbinaryinternal/fonts/files/LiberationSans-Regular.ttfbinaryinternal/fonts/files/LiberationSerif-Bold.ttfbinaryinternal/fonts/files/LiberationSerif-BoldItalic.ttfbinaryinternal/fonts/files/LiberationSerif-Italic.ttfbinaryinternal/fonts/files/LiberationSerif-Regular.ttfbinaryinternal/fonts/fonts.go+294 −0internal/fonts/fonts_test.go+277 −0internal/fonts/truetype.go+689 −0internal/pdf/pdf.go+455 −0scripts/browser-drive.sh+111 −0
CI passed — run details
.amadan/ci.d/10-gateLoading diff…
.gitignoreLoading diff…
.impeccable/config.jsonLoading diff…
AGENTS.mdLoading diff…
PRODUCT.mdLoading diff…
core/src/abi.rsLoading diff…
core/src/fragment.rsLoading diff…
core/src/lib.rsLoading diff…
core/src/snapshot.rsLoading diff…
core/tests/fragment.rsLoading diff…
core/tests/snapshot.rsLoading diff…
docs/superpowers/plans/2026-08-31-formatting-and-export.mdLoading diff…
docs/superpowers/plans/2026-09-01-live-sync.mdLoading diff…
docs/superpowers/plans/2026-09-01-search.mdLoading diff…
docs/superpowers/plans/2026-09-01-snapshots.mdLoading diff…
docs/superpowers/plans/2026-09-02-images-links-tables.mdLoading diff…
docs/superpowers/specs/2026-08-30-docs-design.mdLoading diff…
docs/superpowers/specs/2026-09-01-live-sync-design.mdLoading diff…
docs/superpowers/specs/2026-09-01-snapshots-design.mdLoading diff…
docs/superpowers/specs/2026-09-02-word-processor-basics-design.mdLoading diff…
fixtures/align.mjsLoading diff…
fixtures/align.test.mjsLoading diff…
fixtures/autoformat.mjsLoading diff…
fixtures/autoformat.test.mjsLoading diff…
fixtures/browser-drive.mjsLoading diff…
fixtures/build-bundles.mjsLoading diff…
fixtures/build-editor.mjsLoading diff…
fixtures/dom-writes.mjsLoading diff…
fixtures/editor-entry.jsLoading diff…
fixtures/flash-frames.mjsLoading diff…
fixtures/fonts.mjsLoading diff…
fixtures/fonts.test.mjsLoading diff…
fixtures/generate-fragment.mjsLoading diff…
fixtures/indent.mjsLoading diff…
fixtures/indent.test.mjsLoading diff…
fixtures/jump-to.mjsLoading diff…
fixtures/live-updates.mjsLoading diff…
fixtures/live-updates.test.mjsLoading diff…
fixtures/menu.mjsLoading diff…
fixtures/menu.test.mjsLoading diff…
fixtures/package-lock.jsonLoading diff…
fixtures/package.jsonLoading diff…
fixtures/pages.mjsLoading diff…
fixtures/paste.mjsLoading diff…
fixtures/paste.test.mjsLoading diff…
fixtures/shortcuts.mjsLoading diff…
fixtures/sizes.mjsLoading diff…
fixtures/sizes.test.mjsLoading diff…
fixtures/toolbar-roving.mjsLoading diff…
fixtures/toolbar.mjsLoading diff…
fixtures/toolbar.test.mjsLoading diff…
fixtures/vectors/fragment/aligned.binLoading diff…
fixtures/vectors/fragment/fonts.binLoading diff…
fixtures/vectors/fragment/indented.binLoading diff…
fixtures/vectors/fragment/sizes.binLoading diff…
fixtures/vectors/fragment/styled.binLoading diff…
fixtures/wordcount.mjsLoading diff…
fixtures/wordcount.test.mjsLoading diff…
go.modLoading diff…
internal/core/core.goLoading diff…
internal/core/core_test.goLoading diff…
internal/core/testdata/docs_core.wasmLoading diff…
internal/docs/app.goLoading diff…
internal/docs/assets.goLoading diff…
internal/docs/assets_test.goLoading diff…
internal/docs/brand/icon.svgLoading diff…
internal/docs/cursor_test.goLoading diff…
internal/docs/editor_view_test.goLoading diff…
internal/docs/export.goLoading diff…
internal/docs/export_test.goLoading diff…
internal/docs/handlers.goLoading diff…
internal/docs/hub.goLoading diff…
internal/docs/hub_test.goLoading diff…
internal/docs/list_test.goLoading diff…
internal/docs/menu.goLoading diff…
internal/docs/menu_test.goLoading diff…
internal/docs/migrations/0004_doc_snapshots.sqlLoading diff…
internal/docs/models.goLoading diff…
internal/docs/pages_test.goLoading diff…
internal/docs/preview.goLoading diff…
internal/docs/preview_internal_test.goLoading diff…
internal/docs/render.goLoading diff…
internal/docs/render_test.goLoading diff…
internal/docs/search.goLoading diff…
internal/docs/search_test.goLoading diff…
internal/docs/seed.goLoading diff…
internal/docs/selects_test.goLoading diff…
internal/docs/sizes_test.goLoading diff…
internal/docs/snapshots.goLoading diff…
internal/docs/snapshots_test.goLoading diff…
internal/docs/static/editor.15280b7eedd1868f.jsLoading diff…
internal/docs/static/editor.879cf51cc4b8e027.jsLoading diff…
internal/docs/static/jumpto.a37448e7fcd21855.jsLoading diff…
internal/docs/store.goLoading diff…
internal/docs/store_test.goLoading diff…
internal/docs/stream.goLoading diff…
internal/docs/stream_test.goLoading diff…
internal/docs/testing.goLoading diff…
internal/docs/views/head.htmlLoading diff…
internal/docs/views/list.htmlLoading diff…
internal/docs/views/partials/jumpto.htmlLoading diff…
internal/docs/views/show.htmlLoading diff…
internal/docs/views/signin.htmlLoading diff…
internal/export/document.goLoading diff…
internal/export/markdown.goLoading diff…
internal/export/markdown_test.goLoading diff…
internal/export/pageone.goLoading diff…
internal/export/pageone_test.goLoading diff…
internal/export/pdf.goLoading diff…
internal/export/pdf_test.goLoading diff…
internal/export/pdfread_test.goLoading diff…
internal/export/sample_pdf_test.goLoading diff…
internal/fonts/files/LICENSE-OFL-1.1.txtLoading diff…
internal/fonts/files/LiberationMono-Bold.ttfLoading diff…
internal/fonts/files/LiberationMono-BoldItalic.ttfLoading diff…
internal/fonts/files/LiberationMono-Italic.ttfLoading diff…
internal/fonts/files/LiberationMono-Regular.ttfLoading diff…
internal/fonts/files/LiberationSans-Bold.ttfLoading diff…
internal/fonts/files/LiberationSans-BoldItalic.ttfLoading diff…
internal/fonts/files/LiberationSans-Italic.ttfLoading diff…
internal/fonts/files/LiberationSans-Regular.ttfLoading diff…
internal/fonts/files/LiberationSerif-Bold.ttfLoading diff…
internal/fonts/files/LiberationSerif-BoldItalic.ttfLoading diff…
internal/fonts/files/LiberationSerif-Italic.ttfLoading diff…
internal/fonts/files/LiberationSerif-Regular.ttfLoading diff…
internal/fonts/fonts.goLoading diff…
internal/fonts/fonts_test.goLoading diff…
internal/fonts/truetype.goLoading diff…
internal/pdf/pdf.goLoading diff…
scripts/browser-drive.shLoading diff…