Merge branch 'feat-home-sso' into main
.amadan/README.md+139 −0.amadan/ci+7 −4.amadan/ci.d/10-gate+202 −0.amadan/ci.d/10-vet+0 −2.amadan/ci.d/20-fmt+0 −2.amadan/ci.d/30-test+0 −2.amadan/ci.d/40-migration-check+0 −2.cargo/config.toml+19 −0.gitignore+11 −0AGENTS.md+581 −57CODEX-FINDINGS-SPEC.md+67 −0CODEX-REVIEW-BRIEF-SPEC.md+92 −0Makefile+2 −0PRODUCT.md+350 −0README.md+146 −15clippy.toml+5 −0cmd/slides/main.go+233 −13core/.gitignore+1 −0core/Cargo.lock+584 −0core/Cargo.toml+36 −0core/pdf/.gitignore+1 −0core/pdf/Cargo.lock+905 −0core/pdf/Cargo.toml+52 −0core/pdf/src/abi.rs+207 −0core/pdf/src/lib.rs+171 −0core/pdf/tests/fonts/LiberationSerif-Regular.ttfbinarycore/pdf/tests/no_host_imports.rs+52 −0core/pdf/tests/render.rs+218 −0core/src/abi.rs+463 −0core/src/check.rs+294 −0core/src/layout.rs+461 −0core/src/lib.rs+152 −0core/src/markdown.rs+344 −0core/src/ops.rs+1282 −0core/src/schema.rs+701 −0core/src/view.rs+423 −0core/tests/no_host_imports.rs+56 −0core/tests/ops.rs+772 −0core/vendor/README.md+120 −0core/vendor/fastrand-2.5.0/CHANGELOG.md+140 −0core/vendor/fastrand-2.5.0/Cargo.toml+96 −0core/vendor/fastrand-2.5.0/LICENSE-APACHE+201 −0core/vendor/fastrand-2.5.0/LICENSE-MIT+23 −0core/vendor/fastrand-2.5.0/README.md+110 −0core/vendor/fastrand-2.5.0/benches/bench.rs+141 −0core/vendor/fastrand-2.5.0/src/global_rng.rs+234 −0core/vendor/fastrand-2.5.0/src/lib.rs+736 −0core/vendor/fastrand-2.5.0/tests/char.rs+44 −0core/vendor/fastrand-2.5.0/tests/smoke.rs+357 −0docs/api.md+838 −0docs/superpowers/plans/2026-09-07-slice-1-live.md+258 −0docs/superpowers/plans/2026-09-07-slice-2-editor.md+155 −0docs/superpowers/plans/2026-09-08-slice-3-export.md+66 −0docs/superpowers/specs/2026-09-07-slides-design.md+915 −0fixtures/.gitignore+1 −0fixtures/assets.test.mjs+119 −0fixtures/build-bundles.mjs+67 −0fixtures/canvas.mjs+319 −0fixtures/canvas.test.mjs+86 −0fixtures/changes.mjs+59 −0fixtures/changes.test.mjs+74 −0fixtures/check.mjs+146 −0fixtures/check.test.mjs+110 −0fixtures/commands.mjs+114 −0fixtures/data/canvas.json+27 −0fixtures/data/columns.json+28 −0fixtures/data/every-block.json+41 −0fixtures/data/table.json+19 −0fixtures/data/title-only.json+13 −0fixtures/dom-stub.mjs+165 −0fixtures/editor-entry.js+688 −0fixtures/frames.mjs+37 −0fixtures/frames.test.mjs+33 −0fixtures/generate.mjs+64 −0fixtures/ids.mjs+17 −0fixtures/inspector-block.mjs+123 −0fixtures/inspector-image.mjs+188 −0fixtures/inspector-ops.mjs+238 −0fixtures/inspector.mjs+225 −0fixtures/inspector.test.mjs+246 −0fixtures/layout.mjs+111 −0fixtures/link-dialog.mjs+58 −0fixtures/link-dialog.test.mjs+53 −0fixtures/live-updates.mjs+282 −0fixtures/live-updates.test.mjs+369 −0fixtures/markdown.mjs+190 −0fixtures/ops-apply.mjs+337 −0fixtures/ops-model.mjs+253 −0fixtures/ops-parse.mjs+114 −0fixtures/ops.mjs+48 −0fixtures/ops.test.mjs+453 −0fixtures/package-lock.json+715 −0fixtures/package.json+27 −0fixtures/poison.mjs+120 −0fixtures/presence-view.mjs+202 −0fixtures/presence-view.test.mjs+17 −0fixtures/presence.mjs+247 −0fixtures/presence.test.mjs+166 −0fixtures/resync-controller.mjs+115 −0fixtures/resync-controller.test.mjs+159 −0fixtures/save-queue.mjs+122 −0fixtures/save-queue.test.mjs+100 −0fixtures/schema.mjs+175 −0fixtures/schema.test.mjs+118 −0fixtures/selection.mjs+125 −0fixtures/selection.test.mjs+47 −0fixtures/stage.mjs+300 −0fixtures/stage.test.mjs+160 −0fixtures/status.mjs+30 −0fixtures/status.test.mjs+25 −0fixtures/strip-reorder.mjs+92 −0fixtures/strip-reorder.test.mjs+29 −0fixtures/strip.mjs+182 −0fixtures/strip.test.mjs+152 −0fixtures/switcher.mjs+99 −0fixtures/switcher.test.mjs+76 −0fixtures/text-keys.mjs+109 −0fixtures/text-keys.test.mjs+80 −0fixtures/uploads.mjs+199 −0fixtures/uploads.test.mjs+155 −0fixtures/vectors/canvas.view.json+360 −0fixtures/vectors/canvas.yjsbinaryfixtures/vectors/columns.view.json+311 −0fixtures/vectors/columns.yjsbinaryfixtures/vectors/every-block.view.json+306 −0fixtures/vectors/every-block.yjsbinaryfixtures/vectors/table.view.json+156 −0fixtures/vectors/table.yjsbinaryfixtures/vectors/title-only.view.json+133 −0fixtures/vectors/title-only.yjsbinaryfixtures/view.mjs+161 −0fixtures/view.test.mjs+58 −0fixtures/ydoc.mjs+142 −0go.mod+11 −4go.sum+18 −6internal/slides/agents.go+571 −0internal/slides/api.go+855 −0internal/slides/app.go+300 −35internal/slides/assets.go+876 −0internal/slides/assets_embed.go+99 −0internal/slides/auth.go+582 −0internal/slides/auth_test.go+146 −0internal/slides/config.go+221 −0internal/slides/config_test.go+140 −0internal/slides/core/check_test.go+90 −0internal/slides/core/core.go+708 −0internal/slides/core/core_test.go+239 −0internal/slides/core/testdata/slides_core.wasmbinaryinternal/slides/core/vectors_test.go+186 −0internal/slides/deck/deck.go+192 −0internal/slides/deck/deck_test.go+170 −0internal/slides/decks.go+1135 −0internal/slides/decks_test.go+176 −0internal/slides/editor.go+387 −0internal/slides/export.go+507 −0internal/slides/export_test.go+712 −0internal/slides/exports.go+1162 −0internal/slides/fonts/files/LICENSE-OFL-1.1.txt+91 −0internal/slides/fonts/files/LiberationMono-Bold.ttfbinaryinternal/slides/fonts/files/LiberationMono-BoldItalic.ttfbinaryinternal/slides/fonts/files/LiberationMono-Italic.ttfbinaryinternal/slides/fonts/files/LiberationMono-Regular.ttfbinaryinternal/slides/fonts/files/LiberationSans-Bold.ttfbinaryinternal/slides/fonts/files/LiberationSans-BoldItalic.ttfbinaryinternal/slides/fonts/files/LiberationSans-Italic.ttfbinaryinternal/slides/fonts/files/LiberationSans-Regular.ttfbinaryinternal/slides/fonts/files/LiberationSerif-Bold.ttfbinaryinternal/slides/fonts/files/LiberationSerif-BoldItalic.ttfbinaryinternal/slides/fonts/files/LiberationSerif-Italic.ttfbinaryinternal/slides/fonts/files/LiberationSerif-Regular.ttfbinaryinternal/slides/fonts/fonts.go+313 −0internal/slides/fonts/fonts_test.go+229 −0internal/slides/fonts/truetype.go+703 −0internal/slides/handlers.go+98 −7internal/slides/home.go+169 −0internal/slides/home_test.go+584 −0internal/slides/layout/blocks.go+531 −0internal/slides/layout/fixture_test.go+226 −0internal/slides/layout/layout.go+572 −0internal/slides/layout/layout_test.go+606 −0internal/slides/layout/paint.go+333 −0internal/slides/layout/props.go+217 −0internal/slides/layout/regions.go+179 −0internal/slides/layout/regions_test.go+219 −0internal/slides/layout/sizes.go+178 −0internal/slides/layout/testdata/blank.golden.json+187 −0internal/slides/layout/testdata/canvas-reflow.golden.json+83 −0internal/slides/layout/testdata/canvas.golden.json+70 −0internal/slides/layout/testdata/image-full.golden.json+49 −0internal/slides/layout/testdata/quote.golden.json+46 −0internal/slides/layout/testdata/section.golden.json+29 −0internal/slides/layout/testdata/title-body.golden.json+237 −0internal/slides/layout/testdata/title.golden.json+33 −0internal/slides/layout/testdata/two-column.golden.json+124 −0internal/slides/layout/text.go+356 −0internal/slides/layout/unreached_test.go+90 −0internal/slides/live.go+689 −0internal/slides/live/hub.go+319 −0internal/slides/live/hub_test.go+168 −0internal/slides/live_test.go+49 −0internal/slides/locales/en.toml+587 −0internal/slides/migrations.go+7 −9internal/slides/migrations/0001_init.sql+2 −1internal/slides/migrations/0002_create_decks.sql+16 −0internal/slides/migrations/0003_create_share_links.sql+6 −0internal/slides/migrations/0004_create_presentations.sql+8 −0internal/slides/migrations/0005_create_agents.sql+6 −0internal/slides/migrations/0006_create_deck_snapshots.sql+4 −0internal/slides/migrations/0007_create_deck_assets.sql+4 −0internal/slides/migrations/0008_create_asset_uploads.sql+6 −0internal/slides/migrations/schema.sql+53 −1internal/slides/models.go+371 −10internal/slides/pdfcore/pdfcore.go+355 −0internal/slides/pdfcore/pdfcore_test.go+333 −0internal/slides/pdfcore/testdata/slides_pdf.wasmbinaryinternal/slides/present/hub.go+129 −0internal/slides/present/hub_test.go+118 −0internal/slides/presentation.go+1460 −0internal/slides/render.go+150 −21internal/slides/render/assets_test.go+101 −0internal/slides/render/order_test.go+140 −0internal/slides/render/render.go+1376 −0internal/slides/render/render_test.go+1066 −0internal/slides/render/testdata/blank-desktop.golden.html+45 −0internal/slides/render/testdata/blank-phone.golden.html+45 −0internal/slides/render/testdata/canvas-desktop.golden.html+9 −0internal/slides/render/testdata/canvas-phone.golden.html+9 −0internal/slides/render/testdata/canvas-reflow-desktop.golden.html+13 −0internal/slides/render/testdata/canvas-reflow-phone.golden.html+17 −0internal/slides/render/testdata/image-full-desktop.golden.html+12 −0internal/slides/render/testdata/image-full-phone.golden.html+12 −0internal/slides/render/testdata/quote-desktop.golden.html+17 −0internal/slides/render/testdata/quote-phone.golden.html+17 −0internal/slides/render/testdata/section-desktop.golden.html+7 −0internal/slides/render/testdata/section-phone.golden.html+7 −0internal/slides/render/testdata/title-body-desktop.golden.html+20 −0internal/slides/render/testdata/title-body-phone.golden.html+20 −0internal/slides/render/testdata/title-desktop.golden.html+12 −0internal/slides/render/testdata/title-phone.golden.html+12 −0internal/slides/render/testdata/two-column-desktop.golden.html+25 −0internal/slides/render/testdata/two-column-phone.golden.html+25 −0internal/slides/render/themes.go+290 −0internal/slides/render/unreached_test.go+93 −0internal/slides/replay_long_test.go+212 −0internal/slides/sample.go+302 −0internal/slides/share.go+476 −0internal/slides/snapshot.go+163 −0internal/slides/snapshot_fallback_test.go+73 −0internal/slides/snapshot_test.go+125 −0internal/slides/static/editor.css+707 −0internal/slides/static/editor.ea69e9f399e840e0.js+16 −0internal/slides/static/fonts/LICENSE-OFL-1.1.txt+91 −0internal/slides/static/fonts/LiberationMono-Bold.ttfbinaryinternal/slides/static/fonts/LiberationMono-BoldItalic.ttfbinaryinternal/slides/static/fonts/LiberationMono-Italic.ttfbinaryinternal/slides/static/fonts/LiberationMono-Regular.ttfbinaryinternal/slides/static/fonts/LiberationSans-Bold.ttfbinaryinternal/slides/static/fonts/LiberationSans-BoldItalic.ttfbinaryinternal/slides/static/fonts/LiberationSans-Italic.ttfbinaryinternal/slides/static/fonts/LiberationSans-Regular.ttfbinaryinternal/slides/static/fonts/LiberationSerif-Bold.ttfbinaryinternal/slides/static/fonts/LiberationSerif-BoldItalic.ttfbinaryinternal/slides/static/fonts/LiberationSerif-Italic.ttfbinaryinternal/slides/static/fonts/LiberationSerif-Regular.ttfbinaryinternal/slides/static/present.js+167 −0internal/slides/static/slides.css+764 −0internal/slides/svg.go+525 −0internal/slides/svg/svg.go+544 −0internal/slides/svg/svg_test.go+626 −0internal/slides/svg_test.go+105 −0internal/slides/templates/account.html+50 −0internal/slides/templates/agents.html+80 −0internal/slides/templates/anon.html+16 −0internal/slides/templates/deck_delete.html+19 −0internal/slides/templates/deck_export.html+24 −0internal/slides/templates/deck_new.html+24 −0internal/slides/templates/deck_notes.html+27 −0internal/slides/templates/deck_settings.html+38 −0internal/slides/templates/decks.html+32 −0internal/slides/templates/editor.html+531 −0internal/slides/templates/errors.html+8 −1internal/slides/templates/export_status.html+53 −0internal/slides/templates/home_link.html+2 −0internal/slides/templates/index.html+0 −3internal/slides/templates/layout.html+19 −4internal/slides/templates/present.html+97 −0internal/slides/templates/present_controls.html+32 −0internal/slides/templates/present_notes.html+155 −0internal/slides/templates/remote.html+91 −0internal/slides/templates/remote_pair.html+26 −0internal/slides/templates/share.html+71 −0internal/slides/templates/signin.html+111 −0internal/slides/templates/viewer.html+147 −0internal/slides/thumbs.go+294 −0internal/slides/thumbs_test.go+170 −0internal/slides/viewer.go+453 −0internal/slidestest/agents_test.go+212 −0internal/slidestest/api_test.go+587 −0internal/slidestest/assets_test.go+679 −0internal/slidestest/browser_assets_test.go+172 −0internal/slidestest/browser_layout_test.go+244 −0internal/slidestest/browser_test.go+667 −11internal/slidestest/capabilities_test.go+399 −0internal/slidestest/decks_test.go+266 −0internal/slidestest/editor_test.go+358 −0internal/slidestest/export_test.go+432 −0internal/slidestest/fonts_test.go+185 −0internal/slidestest/harness_test.go+196 −8internal/slidestest/index_test.go+24 −33internal/slidestest/integrity_test.go+167 −0internal/slidestest/live_test.go+664 −0internal/slidestest/present_test.go+569 −0internal/slidestest/share_test.go+245 −0internal/slidestest/signin_test.go+280 −0internal/slidestest/testdata/poison/assets.yjsbinaryinternal/slidestest/testdata/poison/background.yjsbinaryinternal/slidestest/testdata/poison/box.yjsbinaryinternal/slidestest/testdata/poison/fonts.yjsbinaryinternal/slidestest/testdata/poison/magnitude.yjsbinaryinternal/slidestest/testdata/poison/unknownmark.yjsbinaryinternal/slidestest/thumbs_test.go+283 −0internal/slidestest/viewer_test.go+219 −0rust-toolchain.toml+4 −0scripts/build-pdf-wasm.sh+28 −0scripts/build-wasm.sh+43 −0scripts/run-dev.sh+46 −0
CI passed — run details
.amadan/README.mdLoading diff…
.amadan/ciLoading diff…
.amadan/ci.d/10-gateLoading diff…
.amadan/ci.d/10-vetLoading diff…
.amadan/ci.d/20-fmtLoading diff…
.amadan/ci.d/30-testLoading diff…
.amadan/ci.d/40-migration-checkLoading diff…
.cargo/config.tomlLoading diff…
.gitignoreLoading diff…
AGENTS.mdLoading diff…
CODEX-FINDINGS-SPEC.mdLoading diff…
CODEX-REVIEW-BRIEF-SPEC.mdLoading diff…
MakefileLoading diff…
PRODUCT.mdLoading diff…
README.mdLoading diff…
clippy.tomlLoading diff…
cmd/slides/main.goLoading diff…
core/.gitignoreLoading diff…
core/Cargo.lockLoading diff…
core/Cargo.tomlLoading diff…
core/pdf/.gitignoreLoading diff…
core/pdf/Cargo.lockLoading diff…
core/pdf/Cargo.tomlLoading diff…
core/pdf/src/abi.rsLoading diff…
core/pdf/src/lib.rsLoading diff…
core/pdf/tests/fonts/LiberationSerif-Regular.ttfLoading diff…
core/pdf/tests/no_host_imports.rsLoading diff…
core/pdf/tests/render.rsLoading diff…
core/src/abi.rsLoading diff…
core/src/check.rsLoading diff…
core/src/layout.rsLoading diff…
core/src/lib.rsLoading diff…
core/src/markdown.rsLoading diff…
core/src/ops.rsLoading diff…
core/src/schema.rsLoading diff…
core/src/view.rsLoading diff…
core/tests/no_host_imports.rsLoading diff…
core/tests/ops.rsLoading diff…
core/vendor/README.mdLoading diff…
core/vendor/fastrand-2.5.0/CHANGELOG.mdLoading diff…
core/vendor/fastrand-2.5.0/Cargo.tomlLoading diff…
core/vendor/fastrand-2.5.0/LICENSE-APACHELoading diff…
core/vendor/fastrand-2.5.0/LICENSE-MITLoading diff…
core/vendor/fastrand-2.5.0/README.mdLoading diff…
core/vendor/fastrand-2.5.0/benches/bench.rsLoading diff…
core/vendor/fastrand-2.5.0/src/global_rng.rsLoading diff…
core/vendor/fastrand-2.5.0/src/lib.rsLoading diff…
core/vendor/fastrand-2.5.0/tests/char.rsLoading diff…
core/vendor/fastrand-2.5.0/tests/smoke.rsLoading diff…
docs/api.mdLoading diff…
docs/superpowers/plans/2026-09-07-slice-1-live.mdLoading diff…
docs/superpowers/plans/2026-09-07-slice-2-editor.mdLoading diff…
docs/superpowers/plans/2026-09-08-slice-3-export.mdLoading diff…
docs/superpowers/specs/2026-09-07-slides-design.mdLoading diff…
fixtures/.gitignoreLoading diff…
fixtures/assets.test.mjsLoading diff…
fixtures/build-bundles.mjsLoading diff…
fixtures/canvas.mjsLoading diff…
fixtures/canvas.test.mjsLoading diff…
fixtures/changes.mjsLoading diff…
fixtures/changes.test.mjsLoading diff…
fixtures/check.mjsLoading diff…
fixtures/check.test.mjsLoading diff…
fixtures/commands.mjsLoading diff…
fixtures/data/canvas.jsonLoading diff…
fixtures/data/columns.jsonLoading diff…
fixtures/data/every-block.jsonLoading diff…
fixtures/data/table.jsonLoading diff…
fixtures/data/title-only.jsonLoading diff…
fixtures/dom-stub.mjsLoading diff…
fixtures/editor-entry.jsLoading diff…
fixtures/frames.mjsLoading diff…
fixtures/frames.test.mjsLoading diff…
fixtures/generate.mjsLoading diff…
fixtures/ids.mjsLoading diff…
fixtures/inspector-block.mjsLoading diff…
fixtures/inspector-image.mjsLoading diff…
fixtures/inspector-ops.mjsLoading diff…
fixtures/inspector.mjsLoading diff…
fixtures/inspector.test.mjsLoading diff…
fixtures/layout.mjsLoading diff…
fixtures/link-dialog.mjsLoading diff…
fixtures/link-dialog.test.mjsLoading diff…
fixtures/live-updates.mjsLoading diff…
fixtures/live-updates.test.mjsLoading diff…
fixtures/markdown.mjsLoading diff…
fixtures/ops-apply.mjsLoading diff…
fixtures/ops-model.mjsLoading diff…
fixtures/ops-parse.mjsLoading diff…
fixtures/ops.mjsLoading diff…
fixtures/ops.test.mjsLoading diff…
fixtures/package-lock.jsonLoading diff…
fixtures/package.jsonLoading diff…
fixtures/poison.mjsLoading diff…
fixtures/presence-view.mjsLoading diff…
fixtures/presence-view.test.mjsLoading diff…
fixtures/presence.mjsLoading diff…
fixtures/presence.test.mjsLoading diff…
fixtures/resync-controller.mjsLoading diff…
fixtures/resync-controller.test.mjsLoading diff…
fixtures/save-queue.mjsLoading diff…
fixtures/save-queue.test.mjsLoading diff…
fixtures/schema.mjsLoading diff…
fixtures/schema.test.mjsLoading diff…
fixtures/selection.mjsLoading diff…
fixtures/selection.test.mjsLoading diff…
fixtures/stage.mjsLoading diff…
fixtures/stage.test.mjsLoading diff…
fixtures/status.mjsLoading diff…
fixtures/status.test.mjsLoading diff…
fixtures/strip-reorder.mjsLoading diff…
fixtures/strip-reorder.test.mjsLoading diff…
fixtures/strip.mjsLoading diff…
fixtures/strip.test.mjsLoading diff…
fixtures/switcher.mjsLoading diff…
fixtures/switcher.test.mjsLoading diff…
fixtures/text-keys.mjsLoading diff…
fixtures/text-keys.test.mjsLoading diff…
fixtures/uploads.mjsLoading diff…
fixtures/uploads.test.mjsLoading diff…
fixtures/vectors/canvas.view.jsonLoading diff…
fixtures/vectors/canvas.yjsLoading diff…
fixtures/vectors/columns.view.jsonLoading diff…
fixtures/vectors/columns.yjsLoading diff…
fixtures/vectors/every-block.view.jsonLoading diff…
fixtures/vectors/every-block.yjsLoading diff…
fixtures/vectors/table.view.jsonLoading diff…
fixtures/vectors/table.yjsLoading diff…
fixtures/vectors/title-only.view.jsonLoading diff…
fixtures/vectors/title-only.yjsLoading diff…
fixtures/view.mjsLoading diff…
fixtures/view.test.mjsLoading diff…
fixtures/ydoc.mjsLoading diff…
go.modLoading diff…
go.sumLoading diff…
internal/slides/agents.goLoading diff…
internal/slides/api.goLoading diff…
internal/slides/app.goLoading diff…
internal/slides/assets.goLoading diff…
internal/slides/assets_embed.goLoading diff…
internal/slides/auth.goLoading diff…
internal/slides/auth_test.goLoading diff…
internal/slides/config.goLoading diff…
internal/slides/config_test.goLoading diff…
internal/slides/core/check_test.goLoading diff…
internal/slides/core/core.goLoading diff…
internal/slides/core/core_test.goLoading diff…
internal/slides/core/testdata/slides_core.wasmLoading diff…
internal/slides/core/vectors_test.goLoading diff…
internal/slides/deck/deck.goLoading diff…
internal/slides/deck/deck_test.goLoading diff…
internal/slides/decks.goLoading diff…
internal/slides/decks_test.goLoading diff…
internal/slides/editor.goLoading diff…
internal/slides/export.goLoading diff…
internal/slides/export_test.goLoading diff…
internal/slides/exports.goLoading diff…
internal/slides/fonts/files/LICENSE-OFL-1.1.txtLoading diff…
internal/slides/fonts/files/LiberationMono-Bold.ttfLoading diff…
internal/slides/fonts/files/LiberationMono-BoldItalic.ttfLoading diff…
internal/slides/fonts/files/LiberationMono-Italic.ttfLoading diff…
internal/slides/fonts/files/LiberationMono-Regular.ttfLoading diff…
internal/slides/fonts/files/LiberationSans-Bold.ttfLoading diff…
internal/slides/fonts/files/LiberationSans-BoldItalic.ttfLoading diff…
internal/slides/fonts/files/LiberationSans-Italic.ttfLoading diff…
internal/slides/fonts/files/LiberationSans-Regular.ttfLoading diff…
internal/slides/fonts/files/LiberationSerif-Bold.ttfLoading diff…
internal/slides/fonts/files/LiberationSerif-BoldItalic.ttfLoading diff…
internal/slides/fonts/files/LiberationSerif-Italic.ttfLoading diff…
internal/slides/fonts/files/LiberationSerif-Regular.ttfLoading diff…
internal/slides/fonts/fonts.goLoading diff…
internal/slides/fonts/fonts_test.goLoading diff…
internal/slides/fonts/truetype.goLoading diff…
internal/slides/handlers.goLoading diff…
internal/slides/home.goLoading diff…
internal/slides/home_test.goLoading diff…
internal/slides/layout/blocks.goLoading diff…
internal/slides/layout/fixture_test.goLoading diff…
internal/slides/layout/layout.goLoading diff…
internal/slides/layout/layout_test.goLoading diff…
internal/slides/layout/paint.goLoading diff…
internal/slides/layout/props.goLoading diff…
internal/slides/layout/regions.goLoading diff…
internal/slides/layout/regions_test.goLoading diff…
internal/slides/layout/sizes.goLoading diff…
internal/slides/layout/testdata/blank.golden.jsonLoading diff…
internal/slides/layout/testdata/canvas-reflow.golden.jsonLoading diff…
internal/slides/layout/testdata/canvas.golden.jsonLoading diff…
internal/slides/layout/testdata/image-full.golden.jsonLoading diff…
internal/slides/layout/testdata/quote.golden.jsonLoading diff…
internal/slides/layout/testdata/section.golden.jsonLoading diff…
internal/slides/layout/testdata/title-body.golden.jsonLoading diff…
internal/slides/layout/testdata/title.golden.jsonLoading diff…
internal/slides/layout/testdata/two-column.golden.jsonLoading diff…
internal/slides/layout/text.goLoading diff…
internal/slides/layout/unreached_test.goLoading diff…
internal/slides/live.goLoading diff…
internal/slides/live/hub.goLoading diff…
internal/slides/live/hub_test.goLoading diff…
internal/slides/live_test.goLoading diff…
internal/slides/locales/en.tomlLoading diff…
internal/slides/migrations.goLoading diff…
internal/slides/migrations/0001_init.sqlLoading diff…
internal/slides/migrations/0002_create_decks.sqlLoading diff…
internal/slides/migrations/0003_create_share_links.sqlLoading diff…
internal/slides/migrations/0004_create_presentations.sqlLoading diff…
internal/slides/migrations/0005_create_agents.sqlLoading diff…
internal/slides/migrations/0006_create_deck_snapshots.sqlLoading diff…
internal/slides/migrations/0007_create_deck_assets.sqlLoading diff…
internal/slides/migrations/0008_create_asset_uploads.sqlLoading diff…
internal/slides/migrations/schema.sqlLoading diff…
internal/slides/models.goLoading diff…
internal/slides/pdfcore/pdfcore.goLoading diff…
internal/slides/pdfcore/pdfcore_test.goLoading diff…
internal/slides/pdfcore/testdata/slides_pdf.wasmLoading diff…
internal/slides/present/hub.goLoading diff…
internal/slides/present/hub_test.goLoading diff…
internal/slides/presentation.goLoading diff…
internal/slides/render.goLoading diff…
internal/slides/render/assets_test.goLoading diff…
internal/slides/render/order_test.goLoading diff…
internal/slides/render/render.goLoading diff…
internal/slides/render/render_test.goLoading diff…
internal/slides/render/testdata/blank-desktop.golden.htmlLoading diff…
internal/slides/render/testdata/blank-phone.golden.htmlLoading diff…
internal/slides/render/testdata/canvas-desktop.golden.htmlLoading diff…
internal/slides/render/testdata/canvas-phone.golden.htmlLoading diff…
internal/slides/render/testdata/canvas-reflow-desktop.golden.htmlLoading diff…
internal/slides/render/testdata/canvas-reflow-phone.golden.htmlLoading diff…
internal/slides/render/testdata/image-full-desktop.golden.htmlLoading diff…
internal/slides/render/testdata/image-full-phone.golden.htmlLoading diff…
internal/slides/render/testdata/quote-desktop.golden.htmlLoading diff…
internal/slides/render/testdata/quote-phone.golden.htmlLoading diff…
internal/slides/render/testdata/section-desktop.golden.htmlLoading diff…
internal/slides/render/testdata/section-phone.golden.htmlLoading diff…
internal/slides/render/testdata/title-body-desktop.golden.htmlLoading diff…
internal/slides/render/testdata/title-body-phone.golden.htmlLoading diff…
internal/slides/render/testdata/title-desktop.golden.htmlLoading diff…
internal/slides/render/testdata/title-phone.golden.htmlLoading diff…
internal/slides/render/testdata/two-column-desktop.golden.htmlLoading diff…
internal/slides/render/testdata/two-column-phone.golden.htmlLoading diff…
internal/slides/render/themes.goLoading diff…
internal/slides/render/unreached_test.goLoading diff…
internal/slides/replay_long_test.goLoading diff…
internal/slides/sample.goLoading diff…
internal/slides/share.goLoading diff…
internal/slides/snapshot.goLoading diff…
internal/slides/snapshot_fallback_test.goLoading diff…
internal/slides/snapshot_test.goLoading diff…
internal/slides/static/editor.cssLoading diff…
internal/slides/static/editor.ea69e9f399e840e0.jsLoading diff…
internal/slides/static/fonts/LICENSE-OFL-1.1.txtLoading diff…
internal/slides/static/fonts/LiberationMono-Bold.ttfLoading diff…
internal/slides/static/fonts/LiberationMono-BoldItalic.ttfLoading diff…
internal/slides/static/fonts/LiberationMono-Italic.ttfLoading diff…
internal/slides/static/fonts/LiberationMono-Regular.ttfLoading diff…
internal/slides/static/fonts/LiberationSans-Bold.ttfLoading diff…
internal/slides/static/fonts/LiberationSans-BoldItalic.ttfLoading diff…
internal/slides/static/fonts/LiberationSans-Italic.ttfLoading diff…
internal/slides/static/fonts/LiberationSans-Regular.ttfLoading diff…
internal/slides/static/fonts/LiberationSerif-Bold.ttfLoading diff…
internal/slides/static/fonts/LiberationSerif-BoldItalic.ttfLoading diff…
internal/slides/static/fonts/LiberationSerif-Italic.ttfLoading diff…
internal/slides/static/fonts/LiberationSerif-Regular.ttfLoading diff…
internal/slides/static/present.jsLoading diff…
internal/slides/static/slides.cssLoading diff…
internal/slides/svg.goLoading diff…
internal/slides/svg/svg.goLoading diff…
internal/slides/svg/svg_test.goLoading diff…
internal/slides/svg_test.goLoading diff…
internal/slides/templates/account.htmlLoading diff…
internal/slides/templates/agents.htmlLoading diff…
internal/slides/templates/anon.htmlLoading diff…
internal/slides/templates/deck_delete.htmlLoading diff…
internal/slides/templates/deck_export.htmlLoading diff…
internal/slides/templates/deck_new.htmlLoading diff…
internal/slides/templates/deck_notes.htmlLoading diff…
internal/slides/templates/deck_settings.htmlLoading diff…
internal/slides/templates/decks.htmlLoading diff…
internal/slides/templates/editor.htmlLoading diff…
internal/slides/templates/errors.htmlLoading diff…
internal/slides/templates/export_status.htmlLoading diff…
internal/slides/templates/home_link.htmlLoading diff…
internal/slides/templates/index.htmlLoading diff…
internal/slides/templates/layout.htmlLoading diff…
internal/slides/templates/present.htmlLoading diff…
internal/slides/templates/present_controls.htmlLoading diff…
internal/slides/templates/present_notes.htmlLoading diff…
internal/slides/templates/remote.htmlLoading diff…
internal/slides/templates/remote_pair.htmlLoading diff…
internal/slides/templates/share.htmlLoading diff…
internal/slides/templates/signin.htmlLoading diff…
internal/slides/templates/viewer.htmlLoading diff…
internal/slides/thumbs.goLoading diff…
internal/slides/thumbs_test.goLoading diff…
internal/slides/viewer.goLoading diff…
internal/slidestest/agents_test.goLoading diff…
internal/slidestest/api_test.goLoading diff…
internal/slidestest/assets_test.goLoading diff…
internal/slidestest/browser_assets_test.goLoading diff…
internal/slidestest/browser_layout_test.goLoading diff…
internal/slidestest/browser_test.goLoading diff…
internal/slidestest/capabilities_test.goLoading diff…
internal/slidestest/decks_test.goLoading diff…
internal/slidestest/editor_test.goLoading diff…
internal/slidestest/export_test.goLoading diff…
internal/slidestest/fonts_test.goLoading diff…
internal/slidestest/harness_test.goLoading diff…
internal/slidestest/index_test.goLoading diff…
internal/slidestest/integrity_test.goLoading diff…
internal/slidestest/live_test.goLoading diff…
internal/slidestest/present_test.goLoading diff…
internal/slidestest/share_test.goLoading diff…
internal/slidestest/signin_test.goLoading diff…
internal/slidestest/testdata/poison/assets.yjsLoading diff…
internal/slidestest/testdata/poison/background.yjsLoading diff…
internal/slidestest/testdata/poison/box.yjsLoading diff…
internal/slidestest/testdata/poison/fonts.yjsLoading diff…
internal/slidestest/testdata/poison/magnitude.yjsLoading diff…
internal/slidestest/testdata/poison/unknownmark.yjsLoading diff…
internal/slidestest/thumbs_test.goLoading diff…
internal/slidestest/viewer_test.goLoading diff…
rust-toolchain.tomlLoading diff…
scripts/build-pdf-wasm.shLoading diff…
scripts/build-wasm.shLoading diff…
scripts/run-dev.shLoading diff…