TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
An agent native slides editor with Google Slides' behaviours, a canvas on every slide and a pixel identical PowerPoint export.
ProductivityTypeScript · JavaScriptGitHub @Kevin-Liu-01OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Turboslide: an agent native slides editor with Google Slides' behaviours, a canvas on every slide and a pixel identical PowerPoint export
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Turboslide is an agent native slides editor with Google Slides' behaviours, a canvas on every slide and a pixel identical PowerPoint export. It keeps Google Slides' structure in the Prototemplate look. A deck is a block document: a manifest plus one JSON file per slide plus assets with light and dark twins, validated by one schema and checked by a grammar linter.Read the full README ↗Turboslide is a slides editor in the browser. It has menus and keyboard shortcuts for editing, arranging and presenting. No account is needed.
Tools > Advanced tools is one check row in the Tools menu. Off, which is the default, the menu bar, the toolbar, the right click menus, Search the menus and the Keyboard shortcuts dialog show the core set of docs/FOCUS.md section 2 and nothing else. On, every feature below appears in its place in the menus exactly as before, and the setting is remembered in the browser.
A parked feature is hidden, never disabled and never deleted. A deck that carries one of its blocks (a chart, a table, a diagram, an icon, a material, a code panel, a word art block, a gallery shape) still draws it on the sheet, in the show, in the viewer and in every download, and the block can be selected, moved, resized, ordered, aligned, duplicated and deleted through the rows of the default view; only its own tail controls and menu rows are hidden. The keyboard shortcut of a parked row does nothing while the switch is off. One control is the exception to hidden: the Font box on the text tail stays visible and disabled with the sentence "The GT theme sets Inter", so a seller who pastes from an email and sees the font change finds the answer where they look.
What is behind the switch, by menu. FOCUS.md section 3 is the row by row list of the focus round with the reason for each departure from the sales research, and docs/archive/rounds/RETURN.md sections 2, 3 and 8 name what came back in the return round of 2026-09-19 and what stays; this is the same list in fewer words, read from the menu model. The parked list of the people round's ship of 2026-09-30 is docs/gslides-parity/focus/ship-4300058d.json, rendered from the ship step's gate run of record on the enforce preview with its once reruns narrowed to the rows beside it (docs/archive/rounds/PEOPLE.md 6.2), and it carries the objects round's list of 2026-09-26 (ship-c1a7ff3.json) forward unchanged: nothing of the people round is parked (the own chip and the roster's own row, Change avatar and the avatar builder's Picture tab stay in the default view, their rows green on the preview and on the local node server with an identity database), and the ids behind the switch are the objects round's: the features inbox and templates (carried from the product round's ship, red again), the carried rows view.live-pointers.second-browser (Live pointers) and versions.show-changes-marks (Show changes in Version history), each keeping the controls it names behind the switch while the rest of its feature stays in the default view, the four P1 rows of docs/archive/rounds/FEATURES.md 2.3, 4.11 and 3.5 whose controls no ship has built yet (the table bar under a selected table, the text controls of a group's tail, the picker's Symbol, Wordmark, Color and Mono controls and the brand kit's Find a logo), ship two's Shader row of Change background with its three P1 rows (Add to theme, the engine chip, the Frame scrubber and Capture this frame), and the vector round's svg.copy.markup (Cmd+C on an svg picture putting the markup on the clipboard: the markup's read ahead did not land within its bound on the preview and on production at ship two and at the objects round's ship, and read red again on the people round's preview, so the copy writes the block payload alone while the switch is off; for the vector round's owner), whose ids sit in packages/chrome/src/parked-controls.ts so the gate reads their rows behind the list. The rows the list names in notParked with their mechanisms (docs/archive/rounds/PEOPLE.md section 7; the ship note docs/gslides-parity/people/build/ship.md): the objects round's seven (svg.render.vector-at-zoom, the blob tier's timing class by id; logos.index.refresh-fixture and logos.index.cached-offline, fixture only rows production never drives; decks.file.open-list-search, Kevin's standing row; the features brand, fonts and assist, P1 and environment rows alone), ship two's two rulings for the P1 show rows shaders.show.plays-when-on and shaders.show.frame-when-off, whose parks name the built View > Play shaders row, and five rows red once in the run of record and green on their once rerun narrowed to them (, , , , ), flaky by the rule. Two rows of the unparkable features read red on that preview outside the list and are recorded by id in the ship note for the production gate to read again: (the copied link answering 404 to a second browser within a second of the mint, the blob tier's per instance link index) and (its spec file's teardown check alone). The objects round's production run is in docs/gslides-parity/focus/VERIFICATION.md, "Objects round, the production table"; the people round's follows its push.
shaders.background.place-answers; the ground's shader still lands through slide.setBackgroundMaterial on every transport, and a placed ground's words and its Shader options link in the dialog go with the row).Shapes and lines are two features so that one can stand without the other (FOCUS.md section 4). Rectangle, Rounded rectangle and Ellipse, and Line and Arrow with the elbow and curved connectors, are in the default view since the return round of 2026-09-19, when every one of their matrix rows passed twice on the enforce preview and once on production (docs/archive/rounds/RETURN.md sections 2.2 and 2.3; the release note in docs/updates.md). Tables, charts, diagrams, word art and the formatting rows returned with them under the same rule. A release in which one of their rows fails puts that feature, whole, behind the switch again. The four shape grids returned in the vector round of 2026-09-24 with the geometry interpreter, which draws each of the 135 presets from its PowerPoint definition (docs/archive/rounds/VECTOR.md section 2); a grid row carries parks naming its own category, so a red gallery row re parks that category alone and never the three named rows.
For agents nothing moves. Every action stays on the CLI, MCP, HTTP and the window API whether or not its menu row is in the default view; GET /api/agent lists them all, and the skills document the parked ones as advanced. The setting is readable from an open page as window.turboslide.studio.describe().state.settings.advancedTools, and the page carries data-advanced-tools on .pt-viewer while it is on.
Bringing a feature back follows one rule (FOCUS.md section 8). Its interactions are written as matrix rows with stable ids, a feature and a driver; the rows are driven on a preview and on production and pass; the release note lists them; then, and only then, its rows lose the advanced flag. A feature returns whole or not at all: one not driven or failed row keeps every row of the feature parked. The rows that already passed their audit (Group, Ungroup, Distribute, Rotate 90, Show ruler, the guides, Snap to) are the least work to bring back. Tables and charts came back in the features round, Image by URL in the product round, the shape galleries with the interpreter in the vector round, and the table's edge "+", heads and row seams and the word art outline controls in the objects round; the Dither controls, the grid view and the JPEG and PNG downloads return with their fixes.
The mark is a slanted T with three bars under its left arm, in the speed register of General Translation's brand deck: five rectangles sheared by 12 degrees with an 8 unit cut through the stem and the middle bar, built the way the GT bar monogram is built, and drawn with no font. One module draws it everywhere (packages/theme/src/brand.ts), which commits the path with its sha256: the tab icon, the title row, the /decks bar, the print bar, Not found, the lockup at the top of this page, the site card and the terminal banner of turboslide --version. At 16 px it is a hand drawing of whole pixels; from 24 px it is the vector with its cap in whole pixels and every horizontal edge on a whole row. Beside it the word Turboslide is live Inter 500, its cap equal to the mark's, the baselines met and half the cap between them. The identity is paper and ink. The one colour in the chrome is the selection's GT blue #2f5ce0 in both appearances, with white text on the selection chip: it marks a selected object, its handles, the marquee and the crop frame, and it holds at least 3:1 on a white slide and on a dark photograph. Every icon, the manifest, robots.txt, the card and its mood picture are static files that scripts/build-brand.ts writes and pnpm check step 29 compares, the mark's path against its rectangles included. docs/brand.md is the record: the construction and the sizes, the lockup, the tile, the tokens, the accessibility record with its WCAG 2.2 citations, the build and its records, the mapping of the 2026-10-01 brand deck to Turboslide, the picture credits and the repository metadata.
Most of the speed is structural: one renderer, contracts generated ahead of time, immutable documents and caches, and export work that runs where the browser already is. Every number below is a measurement and names the file or the report it comes from with its date; a sentence about a change that is still landing says so, and the tense of every row follows docs/performance.md section 2, which lists what is true today and what becomes true when a named change lands.
renderSlide (packages/render/src/slide.ts) turns a slide into the same HTML and CSS for the editor, the viewer, the embed, the CLI's screenshots and the exporters, so a render at one revision is the same pixels on every surface and no second layout engine has to agree with the first. The 170 renders of the GT deck match the brand deck's own screenshots within 0.5 percent (check step 12) and the canvas conversion changes at most 0.262 percent of pixels over 342 pairs (scripts/canvas-fidelity.mjs, check step 24).packages/schema/src/actions.ts; the CLI parsers, the MCP tools, the HTTP contract, the window API list, the OpenAPI document, llms.txt and the four skills are generated from it and committed, so describing the API costs nothing per request and a stale copy fails check step 3. The generated files hold 169 actions, 146 MCP tools and 153 HTTP paths in the OpenAPI document, 149 of them under /api/actions/ (packages/theme/brand/facts.json, written from packages/agent/generated/ on 2026-09-14). The hosted studio serves the generated OpenAPI document at /openapi.json and the agent index at /llms.txt from the bundle (production answered both with the full files on 2026-09-14).crates/turboslide-native) compiled to a Node addon and to WebAssembly, with a TypeScript copy of the same arithmetic where neither is built, and packages/effects/src/parity.test.ts proves the three light the same cells: 0 disagreements over 30 screens of 360,000 cells and the 1,440,000 cell golden (docs/native.md, 2026-09-10). The crate exists for that agreement; where the addon is built it also cuts a 1600 by 900 screen in 20 ms against 52 ms in TypeScript and 23 ms through wasm (docs/native.md "Costs", Apple M5 Max). The hosted studio runs the TypeScript stages today.docs/pptx.md; docs/archive/status/HOSTED-STATUS.md, 2026-09-11).packages/export/src/batch/plan.ts, ). The 85 slide GT deck exported from production in 187.9 to 203.1 s as one call ( section 7, 2026-09-11) and in 239.5 s batched at a 784.2 MiB peak on a preview (, 2026-09-12).What is still slow is measured too, on production on 2026-09-14 after the round four ship (docs/archive/gslides-parity/VERIFICATION-4.md section 5; verification-4/perf-budget-production-2026-09-14.json): the presentation list's first byte is 409 ms at the median of a cold visit and 3.8 s in its worst sample (the slow server mode of the day 0 baseline is rarer and shorter, not gone); the viewer of the 85 slide GT deck is ready 1.07 s after a cold load; the editor is ready 570 ms after a cold request of /new and 353 ms warm; one instance renders one slide at a time; every route loaded 946 to 2,205 KB of JavaScript against the 3,049 to 3,187 KB before the round, with the entry chunk at 914,233 bytes over its 600,000 byte ceiling in that run; the fixer round cut the entry chunk to 577,949 bytes on the tree that ships (check step 6, 2026-09-14). The plan against each is docs/performance.md.
Turboslide needs Node 24 and pnpm 11.15.1, which corepack installs from the packageManager field. Renders, exports and the tests need the Chrome for Testing binary that playwright-core installs.
git clone https://github.com/Kevin-Liu-01/Turboslide.git
cd Turboslide
corepack enable
pnpm install
pnpm exec playwright-core install --with-deps chromium
pnpm dev
pnpm dev starts the studio on http://localhost:4321, always on that port. The root opens a fresh presentation; /decks lists the decks under decks/, where the GT brand deck and the templates live; /edit/gt-brand opens the brand deck. Derived files land under .turboslide/, which is not committed.
pnpm generate-routes # write apps/studio/src/routeTree.gen.ts (before typecheck)
pnpm generate:contracts # regenerate the CLI, MCP, OpenAPI, manifest, llms and skill tables from the action table
pnpm typecheck # tsc -b over every package
pnpm test # vitest, every package as a project
pnpm lint # eslint per package with the baseline
pnpm build # the studio bundle and the CLI bundle
pnpm check # the acceptance chain; node scripts/check.mjs --list prints the steps
pnpm build:brand # rebuild the icon set and the brand records; pnpm build:brand -- --check compares them
node docs/readme/what-works.mjs # rewrite the "What works today" section of this page from the core matrix; --check compares
The CLI runs from the repository root as pnpm exec turboslide <command> and finds the deck from a deck.json upward or from --deck <dir>. An agent uses it the same way:
pnpm exec turboslide info --json
pnpm exec turboslide slides --json
pnpm exec turboslide slide new --layout split --after title --deck decks/gt-brand
pnpm exec turboslide render all --theme light,dark --out .turboslide/render --json
pnpm exec turboslide lint all --json
pnpm exec turboslide export pptx --mode flatten --theme both --out .turboslide/export
pnpm exec turboslide mcp --deck decks/gt-brand
Optional tooling: Docker for the render worker image and the container verification, Python 3 with fontTools in .turboslide/venv for turboslide fonts build, Rust with the wasm32-unknown-unknown target and wasm-bindgen-cli for the native module (docs/native.md), and the Prototemplate checkout for the two check steps that re-import the brand deck and compare against its screenshots.
Every command is an action of the table; --json prints machine output, --base-revision names the revision a write read, --author names the writer, and exit codes are 0, 1 (findings at the gate or a verify failure) and 2 (usage or validation). Every command below runs whether or not its menu row is in the editor's default view; the commands of a parked feature (tables, charts, diagrams, groups, masks, dithers, materials, the shape galleries) are the advanced ones, and the skills say so.
| Group | Commands |
|---|---|
| Deck | info, validate, import <dir> --into <id>, deck create <name> --from gt-brand|blank, deck rename, deck set <path> <value>, deck list, deck copy, deck trash, deck restore, deck remove --confirm, deck background, deck guides, sections set |
| Bundles and transfer | deck pack <id>, deck unpack <file.zip>, deck push <id> --to <url>, deck pull <id> --from <url> |
| Slides | slides, slide get|put|patch|insert|remove|move, slide new --layout, slide duplicate, slide skip, slide apply-layout, slide import, slide set-layout, slide to-canvas, slide measure, slide background |
| Blocks and objects | block set|insert|remove|move, block align|distribute|order|duplicate, block group|ungroup|regroup, block rotate|flip, block crop|mask|reset-image|adjust, block alt, block shadow, block autofit |
| Text | text style, text case, text insert, text list, text spacing, text columns, text indent, text replace |
| Tables and charts | table merge|unmerge|insert-rows|insert-columns|delete-rows|delete-columns|distribute|cell-style, chart set-data, chart set-kind |
| Shapes and lines | shape set, line set (kinds, decorations, weight, dash, bend, points, --connect-start, --connect-end, --detach), diagram insert --kind --count --style |
| Assets and materials | asset add <file|url> --role --alt [--two-tone], , , , |
The generated reference with every action's input, transports, CLI usage and MCP tool is skills/turboslide-api/references/actions.md.
The repository is a pnpm workspace on TanStack Start, TypeScript strict and ESM throughout, with no barrel files: every package exports its modules through explicit subpaths. Every package under packages/ except viewer, chrome and native is framework free, and headless Chromium never runs inside the web app in a checkout.
apps/studio is the TanStack Start application deployed to Vercel: the editor at /edit/:deckId and the draft at /new, the home page and the trash, the viewer, the embed, the presenter and the print preview, the agent HTTP surface, MCP over HTTP, the export downloads, the bundle routes and the server functions the pages reach the store through.
apps/cli is the turboslide binary, the file transport that needs no browser page. Its store-actions.ts registers every write as a typed function on the dispatcher, and the studio's HTTP and MCP routes and the editor's own handlers run those same store actions, so one implementation serves the four transports.
apps/render-worker is the job queue the studio's renders and exports run on in a checkout (render, sheet, export, verify, PDF and measure jobs over the CLI, one at a time, an export ahead of the queued thumbnail renders), with an HTTP surface and a render cache; the Docker image turboslide-render-worker carries Chrome for Testing, LibreOffice and the fonts, and inside a Vercel function the worker runs in process.
packages/schema holds the document: the types and Zod schemas, validateDeck, applyWrite, diffDecks, the migrations, the block catalogue, the rule table, the 21 layouts and applyLayout, the canvas conversion (toCanvas, fromCanvas), the shape preset table and shapePath (which presets draw their own path and which wait for the geometry interpreter is docs/FOCUS.md section 4), the connectors, the diagram templates, the text markup and the action table.
packages/store is the deck store behind one DeckStore type: FileStore over decks/, the tmp overlay and the Vercel Blob mirror; typed writes, the version log, leases, the watch channel, the templates, the seed, the store selection and the deck bundle (zip, pack, unpack).
packages/render is the renderer: renderSlide, renderDeck, renderStandalone, renderThumb, renderStage, the print document, the block renderers, the diagram and chart SVG on the half-pixel grid, and the one DOM measurer the canvas conversion reads.
packages/theme is gt-ink-paper: sheet.css and stage.css ported once from the brand deck's head.html, the same values as data in tokens.ts with a parity test, and the icon sprite; since round four it also holds the identity's geometry module src/brand.ts (the mark's rectangles, its committed path and the 16 px rows, the placements, the tile, the token data, the contrast helpers) and brand/ (the SVG sources, site.ts with the description, the icon paths and the manifest, the build's records). packages/fonts carries InterVariable and its italic, and the static export font set cut by scripts/build-fonts.py.
packages/viewer is the React viewer and editor stage: Stage, Sheet, the slide, grid and book modes, the Editor with selection, gestures, the canvas handles, marquee, snap lines, rulers, guides, crop mode, zoom and pan, the present pieces (the toolbar, the slide list, the presenter console, the channel) and the material mount.
packages/chrome is the Prototemplate shell ported as source (PORTED_FROM.json records the origin of every file, and which files are Turboslide's own): the tokens, the brand sheet (brand.css, the sixteen --ts- identity tokens and the lockup), the Turboslide mark, the app bar lockup, the empty state figure, the title row, the menu bar and its model (where the Advanced tools switch and the advanced flag of the focus round live), the toolbar and its tails, the filmstrip, the panels, the dialogs, the pickers, the context menus, the snackbar, the tooltip primitive and the editor shell contract.
packages/export is the exporter: scene extraction in headless Chromium, PPTX in the perfect and editable text modes through pptxgenjs, the page raster policy, the OOXML post-process and package validation, the PDF printer, the verify loop over LibreOffice, the batched export plan and merge, and export check.
packages/headless drives Chrome for Testing through Playwright: launch, readiness, the sheet page, measurement, screenshots, the PDF, the site capture recipes and the shell driver the chrome lint uses.
packages/effects is the two-tone pipeline (Bayer dither, tone, resample, filters), the 1-bit PNG encoder, plate metrics, the diffs and DSSIM, and the backend selection between the native addon, the wasm module and TypeScript. packages/native and crates/turboslide-native are the Rust crate behind @turboslide/native with its napi and wasm bindings and the per platform packages.
packages/materials is the Paper Shaders catalogue with uniform schemas and presets, the stage mount, material.capture and the asset actions. packages/lint is the grammar linter with its static and rendered rules, the fixture deck and the known findings gate. packages/import turns the Prototemplate deck HTML into the document with zero escape blocks.
packages/agent is the action dispatcher, the HTTP request rules, the window API and the contracts generator with its committed outputs (manifest, describe, CLI, MCP tools, OpenAPI, llms.txt). packages/mcp is the MCP server over stdio and streamable HTTP.
decks/ holds gt-brand (the GT brand deck), templates/gt-brand and templates/blank (what deck.create copies) and fixture (the test decks). skills/ holds the four agent skills, scripts/ the acceptance chain, the audits and the probes (scripts/probes/editor-walk-probe.mjs --core drives the matrix), docker/ the render worker image, tooling/ the shared tsconfig, eslint and prettier configs, and docs/ the reference and status documents.
Turboslide is a slide editor for a team that tailors an existing deck and presents it. Every feature in the default view is driven end to end against the production deployment before a release, at human speed, and the release note carries the table of what passed. Features that are not yet tested that way are behind Tools > Advanced tools and are documented as advanced.
Rendered from docs/gslides-parity/focus/core-matrix.json by docs/readme/what-works.mjs, from what the focus audits saw on production on 2026-09-15. A feature appears below only while every row of its part of the matrix passes; the rest of the matrix is listed under "Held until every row passes". docs/FOCUS.md is the specification.
Costs. An open editor, a hidden tab, an editing session, two tabs on one deck and a show each make a bounded number of requests a minute, and the store calls a deck costs a minute are counted in every release run and stay under their ceilings.
Walked by hand, never counted as passed by a run (docs/gslides-parity/focus/manual-checklist.md): text.clipboard.paste-without-formatting, accounts.google-roundtrip, setup.free-plan.caps, setup.do.memory.
Driven on a node server with an identity database, never on the deployment this reading comes from (docs/archive/rounds/PEOPLE.md 6.2; the gate's --only accounts run judges them): people.verified-badge, people.versions-author-account, people.labels-disambiguated, share.dialog.grant-email-line, people.avatar-upload, people.avatar-cap-refusal, people.avatar-rotation, people.avatar-fallback-plate, people.avatar-link-visitor, people.avatar-metadata-stripped, accounts.sign-out-clean, accounts.decks-list-scoped, accounts.google-button, accounts.google-leaves, accounts.google-error-sentence, accounts.email-hidden-without-mail, accounts.google-roundtrip, accounts.plate.cancel-comes-home, accounts.plate.states, accounts.device-flow, accounts.failure-says-why, accounts.anonymous-deck-kept, accounts.menu.words, accounts.mail-branded.
Measured and recorded, never holding a release (docs/archive/rounds/PRODUCT.md 8.2): export.download.large-deck-pdf (broken), export.download.large-deck-pptx (broken), cost.editor-idle.calls (broken), cost.editor-hidden.calls (broken), cost.editor-editing.calls (broken), cost.show.calls (broken), shaders.perf.editor-frame (not driven), cost.redis.commands (not driven), cost.do.requests (not driven), cost.do.duration (not driven), cost.do.rows-written (not driven), cost.d1.reads (not driven), cost.d1.writes (not driven), cost.worker.requests (not driven).
A feature is in the default view only when every one of its interactions passes on the preview and on production (docs/FOCUS.md section 1). Each feature below has a row that failed or was not driven in the run above, so its menu rows sit behind Tools > Advanced tools until the rows named pass; the switch itself cannot be parked, and a failed or not driven row of it blocks the release.
decks.home.new-presentation (not driven), decks.new.ground-paint (flaky), decks.title.tab-title-after-rename (broken), decks.save.acknowledged (flaky), decks.card.rename-enter (broken), decks.row.rename-enter (broken), decks.card.make-a-copy (flaky), decks.card.open-in-new-tab (flaky), decks.trash.listed-after-move (flaky), decks.trash.lists-after-restore (broken), decks.trash.delete-forever-enter (broken), decks.access.paint (flaky), decks.file.make-a-copy (not driven), decks.name.follows-heading (broken), decks.recent.drops-trashed (broken), decks.trash.editor-undo-snackbar (broken), decks.recent.this-browser-sentence (not driven), decks.home.seller-lead (not driven), decks.card.thumbnail-slide-1 (broken), decks.card.edited-relative-time (broken), decks.card.more-glyph (broken), decks.trash.button-heights (broken), decks.trash.confirm-dialog-chrome (broken), decks.new.skeleton-one-frame (broken), decks.access.stranger-links (broken), decks.notfound.sentence-case (broken), decks.recent.keeps-new-deck (broken), decks.card.rename-everywhere (broken), decks.list.one-card-per-deck (broken), decks.list.own-and-shared (broken), decks.list.action-scoped (broken), decks.manifest.paper (broken), decks.trash.leaves-at-once (broken), decks.card.title-ellipsis (broken), decks.card.download-powerpoint (broken), decks.import.upload-drop-zone (broken), decks.back.list-restored (broken), decks.card.thumbnail-or-plate (broken), decks.trash.enter-confirms (broken), decks.card.rename-field-fits (broken), decks.trash.empty-not-primary (broken), decks.polish.pages-sweep (broken), decks.thumbnail.never-502 (broken), decks.home.copy-rules (not driven), decks.home.links-and-card (broken), decks.home.layout-shift (not driven), decks.home.copy (broken), decks.home.phone (not driven), decks.list.ruled-rows (broken), decks.og.deck-card (broken), (not driven), (not driven), (not driven), (not driven), (not driven), (not driven), (not driven), (not driven), (not driven), (not driven), (not driven), (not driven), (not driven), (not driven), (not driven), (not driven), (broken), (broken), (broken), (broken), (broken), (not driven), (not driven), (broken), (broken), (broken), (broken), (not driven), (broken), (broken), (broken), (broken), (broken), (broken), (broken), (broken), (broken), (not driven), (broken), (broken).docs/README.md is the index of every document under docs/, with the binding ones first.
| Document | What it covers |
|---|---|
| docs/README.md | The index of the documents: where to start, the reference by subsystem, the closed rounds and the records |
| docs/NEXT.md | The next program: the rounds for speed, cost, features, the brand and sign in |
| docs/FOCUS.md | The rule, the core set by menu row, the parked set behind Tools > Advanced tools, the test matrix and the ship gate |
| docs/updates.md | The release notes, one entry per release with what changed in the default view |
| AGENTS.md | The rules for working in the repository: code rules, the agent surface, the parity chains, acceptance, the rounds |
| docs/spec/SPEC.md | The specification: the document model, the renderer, the editor, the agent surface, export, hosting |
| skills/ | The four agent skills: turboslide-api, turboslide-create, turboslide-studio, turboslide-verify |
| THIRD_PARTY_NOTICES.md | Third-party licenses |
MIT, copyright 2026 Kevin Liu (LICENSE). Third-party licenses are listed in THIRD_PARTY_NOTICES.md.
logos.cache.open-licence-onlyshaders.frame.reuse-and-pruneshaders.panel.kit-coloursshaders.panel.slider-live-undosvg.sanitize.brokenshare.dialog.co-edit-from-copied-linkfonts.preload.italic-on-edit-onlyapps/studio/src/server/export-batch.tsdocs/hosting.mddocs/archive/gslides-parity/VERIFICATION-2.mdHEAVY in apps/studio/vite.deploy.config.ts; the memory is the project's standard setting, since the memory field the config once carried is inert on fluid compute and was dropped in the sync and costs round), on fluid compute, so several requests to one deployment share one warm process and a render does not wait for a cold start when the process is up. One Chromium job runs at a time per instance (docs/hosting.md section 8), so the claim is about the process and never about parallel exports. What a page costs while it is open is counted in every release run since the sync and costs round (docs/archive/rounds/SYNC.md section 6): an idle editor tab makes at most 12 function requests a minute and the deck at most 11 advanced store calls a minute, a show makes none after its load, and a viewer or show page opens no agent session unless its address carries agent=1.defaultPreload: 'intent' in apps/studio/src/router.tsx loads a route's code and data when the pointer reaches its link, the first twelve cards of the list preload in the viewport, preloaded data stays fresh for 30 seconds, and the title row's mark is a link of the same document: from the click on a card to the studio ready and settled took 168 ms for the 85 slide GT deck and the move from the editor back to the list 16 ms in page, warm, on production on 2026-09-14 (docs/archive/gslides-parity/VERIFICATION-4.md section 5.2; the day 0 numbers were 598 ms and a 1,114 ms document load).packages/store/src/snapshots.ts), so a reader proves it holds the current document from one head and fetches no slide it already has; a thumbnail named by its revision is cached for a year (apps/studio/src/server/thumbs.ts); the GT deck's pictures are static files on the CDN that answer before the function runs. The GT deck's pictures carry max-age=3600 for the browser and s-maxage=86400 for the CDN, so a second visit to the deck within the hour fetched 0 of 16 of them again on production, and the icon set, the card and /home answered from the CDN's cache on their second request (docs/archive/gslides-parity/VERIFICATION-4.md sections 5.1 and 5.2, 2026-09-14). The thumbnail cache is shared across instances on Blob (apps/studio/src/server/thumbs.ts).asset ditherasset capture <url>material listmaterial capture <id> --anchor <ms>| Render and verify | render [ids|all] --theme light,dark --scale 1|2, sheet --cols --thumb --overlay lint|plate, lint [--layers static|rendered|both] [--baseline], lint --chrome --url --widths --themes, fix [--rule], judge bundle --out, diff [from [to]] [--render] |
| Versions and leases | version save|list|restore, lease <slideId> [--force] [--release] |
| Export | export pptx --mode flatten|native --theme light,dark|both [--embed-fonts] [--include-notes] [--include-skipped] [--verify], export pdf, export txt, export jpeg, export check <file.pptx>, build --out <file> --budget 16, fonts build [--check] |
| Agent surface | mcp (the MCP server over stdio), generate (the contracts generator) |
home.page.layouthome.title.one-linehome.title.stackshome.title.presshome.hero.poster-firsthome.budget.first-scripthome.hero.swap-no-shifthome.hero.agents-workhome.hero.visitor-typeshome.hero.no-writeshome.hero.fresh-on-reloadhome.hero.pausedhome.hero.reduced-motionhome.hero.phonehome.hero.server-features-sentencehome.bar.narrowdecks.pages.access-platesdecks.pages.radiusdecks.pages.numeralsdecks.pages.default-glyphsdecks.pages.scrollbarthemes.render.each-themethemes.agent.theme-listthemes.export.pptx-token-coloursthemes.default.new-is-simplethemes.appearance.theme-defaultthemes.agent.create-defaultthemes.migration.gt-unchangedthemes.closing.no-gt-mark-on-simplethemes.layouts.no-gt-pictures-on-simplethemes.picker.lists-librarythemes.picker.apply-one-committhemes.picker.keyboardthemes.gt.selectablethemes.reset.returns-to-themethemes.reset.field-returns-to-themethemes.logo.theme-logo-onlythemes.pickers.follow-themedecks.refused.address-wordsdecks.trash.ruled-rowsslides.delete.two-selected-menu (broken), slides.delete.two-selected-edit-menu (broken), slides.delete.canvas-focus-undo (flaky), slides.delete.undo-redo-saved (flaky), slides.layout.fresh-slide-two-picks-no-carry (broken), slides.layout.snackbar-counts-typed-only (broken), slides.clipboard.copy-paste-card (not driven), slides.reorder.menu-up-down-beginning (not driven), slides.reorder.cmd-shift-up-down (not driven), slides.notes.view-menu-toggle (not driven), slides.context.empty-canvas (not driven), slides.numbers.apply (not driven), slides.layout.title-and-body-single (broken), slides.layout.subtitle-prompt (not driven), slides.layout.new-slide-inherits (not driven), slides.layout.tile-sentences (broken), slides.layout.plate-four-columns (broken), slides.import.none-preselected (broken), slides.layout.blank-empty (broken), slides.background.picture-grid (broken), slides.filmstrip.follows-every-move (broken).text.title.single-click (broken), text.selected.typing-replaces (not driven), text.selected.enter-appends (not driven), text.title.double-click-enters (not driven), text.textbox.drag-inside-moves (broken), text.textbox.burst-reliability (broken), text.italic.toolbar-word (broken), text.color.swatch-on-word (broken), text.list.bulleted-toolbar (broken), text.list.numbered-toolbar (broken), text.link.cmd-k-enter (broken), text.link.present-click (not driven), text.format-menu.text-fitting (not driven), text.autofit.textbox-grow (broken), text.find-replace.shortcut (flaky), text.list.numbered-menu-preset (not driven), text.list.chords (not driven), text.link.toolbar-button (not driven), text.format-options.panel (not driven), text.layout-runs.type (not driven), text.context.text-block (not driven), text.context.text-selection (not driven), text.context.inside-session (broken), text.format-menu.size-decrease (not driven), text.format-menu.spacing-single-1-15 (not driven), text.format-menu.align-indent-rows (not driven), text.textbox.toolbar-button (not driven), text.title.one-click-tail (broken), text.title.bold-menu (broken), text.title.bold-cmd-b (broken), text.title.align-menu (broken), text.title.size-menu (broken), text.title.format-options-marks (broken), text.title.apply-layout-after-format (not driven), text.fontsize.type-one-undo (broken), text.format-options.field-one-undo (broken), text.link.detect-url (broken), text.link.detect-email (broken), text.select.double-click-address (broken), text.select.shift-home-line (broken), text.link.popover-apply-remove (broken), text.link.slide-target (broken), text.format-options.padding-grid (broken), text.format-options.remembers-section (not driven), text.autofit.shrink-on-overflow (not driven), text.find-replace.count-while-typing (broken), text.bold.toolbar-marks-run (broken), text.paragraph.toolbar-live (broken), text.list.enter-tab-no-error (broken), text.size.run-and-typed-value (broken), text.marks.whole-block-from-menu (broken), text.tail.heading-takes-list-indent (broken), text.heading.enter-keeps-session (broken), text.link.chip-on-click (broken), text.title.shrink-on-overflow (broken), text.title.second-session-survives-reload (broken), text.link.popover-anchored (broken), text.link.detection-setting (broken), text.tail.size-reads-heading (broken), text.polish.highlight-console (broken).images.insert.first-on-new-deck (broken), images.insert.upload (flaky), images.insert.upload-while-pending (broken), images.insert.drop (flaky), images.insert.paste (flaky), images.guides.centre-x (flaky), images.resize.edge-fill (broken), images.crop.toolbar-escape-cancels (broken), images.replace.upload (broken), images.background.upload-picture (flaky), images.replace.drop-on-picture (not driven), images.context.image (not driven), images.options.menu-row (not driven), images.background.hex-field (not driven), images.insert.centred-in-body (broken), images.insert.instant-preview (broken), images.caption.add (not driven), images.options.picture-sections-only (broken), images.insert.menu-direct (broken), images.upload.failure-snackbar (not driven), images.transparency.slider (broken), images.border.drawn (broken), images.insert.by-url (broken), logos.intake.url-sentence (broken), images.insert.no-external-banner (broken), images.replace.keeps-aspect (broken), images.picture.no-plate (broken), images.panel.seller-words (broken), images.panel.drop-shadow (not driven), images.mask.picker-fits-panel (broken), images.caption.grows-box (broken), images.border.color-draws-at-once (broken), images.alt.focused-empty (broken), images.byurl.preview-contained (broken), images.drop.clamped (broken), images.crop.dims-outside (broken), images.polish.natural-size (broken).arrange.multi.drag-inside-moves-all (broken), arrange.align.right (flaky), arrange.align.top (broken), arrange.align.bottom (broken), arrange.clipboard.cut-paste-undo (flaky), arrange.clipboard.menu-copy-paste (flaky), arrange.clipboard.paste-after-new-slide-button (broken), arrange.clipboard.paste-with-filmstrip-focus (broken), arrange.duplicate.menu-selects-copy (broken), arrange.redo.after-undone-duplicate (broken), arrange.keys.backspace-empty-selection (broken), arrange.zoom.menu-in (broken), arrange.zoom.cmd-minus (broken), arrange.zoom.cmd-plus (broken), arrange.zoom.fit (flaky), arrange.zoom.menu-out (broken), arrange.zoom.menu-presets (not driven), arrange.toolbar.select (not driven), arrange.group.context-rows (not driven), arrange.context.rotate-distribute (not driven), arrange.guides.drag (flaky), arrange.snap.grid-effect (not driven), arrange.insert.selected-after-menu (broken), arrange.insert.free-rectangle (not driven), arrange.group.tail-text-controls (not driven), gestures.draw.shape-fill-at-step5 (broken), gestures.draw.click-at-press (broken), gestures.draw.grammar-slide-converts (broken), gestures.resize.text-reflows (not driven), gestures.resize.diagram-follows (not driven), gestures.resize.wordart-scales (not driven), gestures.move.connector-follows-live (broken), gestures.rotate.ring-turns-live (broken), gestures.rotate.ring-after-release (broken), gestures.frame.one-render-per-frame (not driven), gestures.frame.cost-budget (not driven), gestures.watch.chart-se-after-mark-click (flaky), arrange.select.no-browser-highlight (broken).shapes.insert.named-rows (not driven), shapes.default-look (broken), shapes.move (not driven), shapes.resize.eight-handles (not driven), shapes.rotate (not driven), shapes.fill.colour (not driven), shapes.border.colour-weight-dash (not driven), shapes.text.type-align-bold (not driven), shapes.duplicate-delete-undo-redo (not driven), shapes.format-options.size-position (not driven), shapes.export.pdf (not driven), shapes.export.pptx (not driven), shapes.reload-and-viewer (not driven), shapes.context.shape (not driven), shapes.text.colour-toolbar (broken), shapes.label.centred-default (broken), shapes.geometry.shapes.hexagon-sheet (broken), shapes.geometry.shapes.star5-adjust (not driven), shapes.geometry.shapes.pie-arc (broken), shapes.geometry.shapes.multipath-can (broken), shapes.geometry.shapes.flowchart-own-space (broken), shapes.geometry.arrows.right-arrow (broken), shapes.geometry.arrows.curved-right (broken), shapes.geometry.callouts.wedge-rect (broken), shapes.geometry.callouts.cloud (broken), shapes.geometry.equation.plus-divide (broken), shapes.geometry.text-rect (broken), shapes.geometry.sites (broken), shapes.geometry.resize-keeps-adjust (not driven), shapes.geometry.export.pptx-prst-avlst (not driven), shapes.geometry.export.raster-modes (not driven), shapes.insert.grid-shapes (broken), shapes.insert.grid-arrows (broken), shapes.insert.grid-callouts (broken), shapes.insert.grid-equation (broken), shapes.icons.named-rows (broken), shapes.change-shape.plate (not driven), shapes.mask-image.plate (not driven), shapes.geometry.cloud-callout-closed (broken).lines.insert.line-drag (not driven), lines.insert.arrow-drag (not driven), lines.end-handle (not driven), lines.tail.colour-weight-dash-ends (not driven), lines.context.line (not driven), lines.connector.re-end (not driven), lines.tail.line-start-end-menu (not driven), lines.chip.kind-name (broken), lines.hit.stroke-only (broken), lines.move.detaches (broken), lines.select.handles-no-ring (broken), lines.connector.perpendicular-at-sites (broken).present.keys.blank-black-white (not driven), present.skipped-left-out (not driven), present.show.no-white-block (broken), present.show.bar-on-entry (broken), present.presenter.sentence-case (broken), present.presenter.phone-head (broken), present.bar.no-dead-control (broken), present.laser.visible (broken), present.link.first-paint-show (broken), present.presenter.surfaces (broken).share.view-link-cannot-edit (broken), share.stranger-cannot-edit (broken), collab.edit-from-second-browser (flaky), collab.slide-added-appears (flaky), collab.presence-chips (broken), collab.rename-reaches-second-browser (broken), share.view-link-excludes-skipped-and-notes (not driven), share.present-link-excludes-skipped (not driven), share.file-menu-share-with-others (not driven), share.dialog.one-link (broken), share.dialog.slideshow-checkbox (not driven), share.dialog.more-row (broken), share.dialog.you-label (broken), share.dialog.co-edit-from-copied-link (broken), people.chip-plate-size (broken), people.mark-renderers-agree (broken), people.own-chip-follows-name (broken), people.own-chip-follows-avatar (broken), people.chip-tooltip-trust (broken), share.dialog.owner-resolved (broken), collab.caret-hue-matches-chip (broken), share.name-prompt.empty-field (broken), share.dialog.ruled-rows (broken), share.dialog.new-deck-restricted-viewer (broken), share.role-change.keeps-link (broken), share.dialog.restricted-and-more (broken), share.name-prompt.never-mid-drag (broken), collab.follow.anonymous-editor (not driven), collab.presence.join-within-2s (broken), collab.polish.session-sweep (broken), share.access.true-sentence (broken), accounts.no-dead-method (broken), accounts.signin.one-dialog (broken), accounts.sign-in-fits (broken), accounts.plate.signin-page (broken), accounts.provider-error-sentence (broken), accounts.google-button-guideline (broken), accounts.sign-in-everywhere (broken), accounts.dialog-in-brand (broken).comments.on-title-placeholder (broken), comments.resolve (flaky), comments.toolbar-and-menu-routes (not driven), comments.reaches-second-browser (not driven), comments.panel.empty-gesture (broken), people.comment-departed-guest (broken), comments.insert.needs-selection (broken), comments.marker.one-per-anchor (broken).versions.restore (flaky), versions.undo-restore (not driven), versions.show-changes-marks (not driven), versions.panel.author-you (broken), versions.window-mark-column (broken), versions.restore-in-more (broken), versions.panel.seam-and-time (broken), versions.panel.rows-read-clean (broken), versions.title-row.last-edit-inline (broken), versions.field.corner (broken).export.pdf.notes-honest (broken), export.print.download-pdf-follows-preview (broken), export.print.file-menu-after-close (flaky), export.html.web-page (flaky), export.jpg.current-slide (broken), export.png.current-slide (broken), export.download.named-after-title (broken), export.download.pdf-direct (broken), export.download.pptx-direct (broken), export.pptx.rotated-frames (broken), export.download.options-dialog (not driven), export.download.progress-per-slide (broken), export.download.mode-sentence (not driven), logos.export.pdf-pptx-crisp (not driven), shaders.export.pdf-frame (broken), shaders.export.pptx-frame (broken), shaders.export.html-frame (broken), shaders.export.missing-frame-row (not driven), export.print.deck-appearance (broken), export.details.seller-card (broken), export.refusal.sentence-and-retry (broken), export.print.opens (broken), export.download.one-name-rule (broken), export.picture.progress-and-capture (broken), export.remove.copies-gone (broken), export.fonts.upstream-names (broken).help.documentation-link (broken), help.shortcuts.no-duplicates (broken), help.shortcuts.question-key (broken), help.check-slides.plain-sentence (broken), help.docs.sections (not driven), help.docs.figures (not driven), help.docs.footer (not driven), help.docs.nav-weight (not driven), help.docs.page (broken), help.docs.prerendered (broken), help.docs.nav-client (broken), help.docs.search (broken), help.docs.twin (broken), help.docs.copy-page (broken), help.docs.reference (broken), help.docs.links (broken).tables.cell.tab-from-written (broken), tables.cell.shift-tab (not driven), tables.menu.format-table-with-session (broken), tables.menu.format-table-selected (broken), tables.menu.format-table-rows (not driven), tables.column.insert-keeps-widths (broken), tables.column.resize-seam (not driven), tables.cell.align-menu (broken), tables.cell.align-toolbar (broken), tables.cell.fill-border-tail (not driven), tables.cells.merge-unmerge (not driven), tables.tail.merge-unmerge-buttons (not driven), tables.distribute.rows-columns (not driven), tables.light-appearance (not driven), tables.export.pptx-editable (broken), tables.cell.click-places-caret (broken), tables.cell.click-then-type (broken), tables.range.drag-from-selected (not driven), tables.selected.typing-appends (broken), tables.cell.arrows-cross-cells (not driven), tables.range.shift-arrows (not driven), tables.range.bold-italic (broken), tables.range.size-color (not driven), tables.panel.table-first (broken), tables.seam.row-drag (not driven), tables.edge.add-row-column (not driven), tables.heads.select-row-column (not driven), tables.bar.row-column-buttons (not driven), tables.paste.tsv-makes-table (broken), tables.paste.into-cell-spreads (broken), tables.command.keeps-caret (broken), tables.cells.tabular-figures (broken), tables.select.ring-with-cell-open (broken), tables.cell.ring-on-cell (broken), tables.cells.empty-grid-guides (broken), tables.light-appearance-guides (not driven), tables.insert.box-fits-rows (broken), tables.rows.grow-with-text (broken), tables.resize.rows-share-extra (broken), tables.seam.visible-with-cell-open (broken), tables.heads.header-toggle (not driven), tables.panel.section-words (broken), tables.cells.no-prompt (broken), tables.rows.ring-follows-typing (broken), tables.header.rule-with-text (broken), tables.cell.click-moves-caret (broken), tables.tail.size-step-ladder (broken), tables.insert.box-never-shorter-than-rows (broken), tables.heads.keys-act-on-range (broken), tables.insert.one-placement-rule (broken), tables.edge.stays-inside-sheet (broken), tables.range.align-cells-only (broken), tables.context.object-menu-on-frame (broken), tables.polish.seams-snap-grid (broken).charts.type.panel-legible (broken), charts.type.toolbar (not driven), charts.type.menu (not driven), charts.data.toolbar-edit-data (not driven), charts.data.menu-edit-data (not driven), charts.legend.toolbar (not driven), charts.number-format.toolbar (not driven), charts.data.paste-rows (not driven), charts.context (not driven), charts.light-appearance (not driven), charts.export.pdf (not driven), charts.grid.type-to-edit (broken), charts.grid.escape-stays (broken), charts.double-click.opens-data (broken), charts.mark.click-selects-cell (not driven), charts.legend.none-from-toolbar (broken), charts.panel.no-duplicate-controls (broken), charts.grid.remove-visible (broken), charts.pie.add-series-refused (broken), charts.grid.every-series-in-view (broken), charts.labels.fit-slot (broken).diagrams.edit-label (not driven), diagrams.light-appearance (not driven), diagrams.reload (not driven), diagrams.label.double-click-opens (broken), diagrams.label.tab-next (not driven), diagrams.step.one-object (broken), diagrams.export.step-label (not driven), diagrams.member.duplicate-delete (not driven), diagrams.label.double-click-selects-word (broken).wordart.edit (not driven), wordart.light-appearance (not driven), wordart.resize.scales-letters (broken), wordart.tail.fill-outline (not driven), wordart.bar.closes (broken), wordart.polish.chip-weight-arming (broken).formatting.superscript.menu-word (broken), formatting.subscript.menu-word (broken), formatting.italic.menu-word (broken), formatting.context.selection-rows (not driven), formatting.align.toolbar-justify (not driven), formatting.spacing.1-15-value (broken), formatting.paint-format.chords (not driven), formatting.clear.inline-marks (broken), formatting.theme.import-hidden (not driven), formatting.numerals.tabular-row (not driven), formatting.spacing.table-cells (broken), formatting.border-weight.menu-opens (broken).chrome.split.one-box (broken), chrome.split.hover-no-inversion (broken), chrome.split.chevron-menu-aligned (broken), chrome.split.enter-chevron (broken), chrome.split.enter-label (broken), chrome.split.arrow-down-label (broken), chrome.split.tab-order (flaky), chrome.split.aria (broken), chrome.split.collapse-900 (broken), chrome.separators.once (broken), chrome.cluster.gaps-heights (broken), chrome.comments-glyph.toggle (broken), chrome.bottom-bar.removed (broken), chrome.menu.no-tooltip-with-submenu (broken), chrome.menu.escape-focus-stage (broken), chrome.presence.tooltip (broken), chrome.contrast.titanium-light (broken), chrome.disabled.token-both-appearances (not driven), chrome.field.boundary-3-1 (broken), chrome.hover.ground (broken), chrome.floating.edge-frame (broken), chrome.focus.one-ring-rule (broken), chrome.filmstrip.one-ring (broken), chrome.appearance.first-visit-follows-os (broken), chrome.tooltip.none-on-focus-in-menus (broken), chrome.menu.plate-fits-labels (broken), chrome.menu.no-mnemonics-mac (broken), chrome.select.one-rule (broken), chrome.check.draws-check (broken), chrome.toolbar.fold-any-width (broken), chrome.toolbar.bold-follows-selection (broken), menus.icons.insert-rows (broken), menus.icons.format-rows (broken), chrome.format-options.fields-by-kind (broken), chrome.plate.fits-viewport (broken), chrome.tail.reads-mode (broken), menus.rows.icon-on-every-row (broken), chrome.snackbar.refusal-sentence (broken), chrome.handles.tooltip-words (broken), chrome.tooltips.only-on-hover (broken), chrome.chip.above-ring (broken), chrome.dialog.no-loading-jump (broken), chrome.dialog.focus-return-and-trap (broken), chrome.context.escape-closes-submenu (broken), chrome.title-row.phone (broken), chrome.phone.menus-key (not driven), chrome.title-row.name-after-first-write (flaky), chrome.title-row.one-status (broken), chrome.stage.deck-appearance (broken), chrome.mark.one-product-mark (broken), chrome.ai.no-sparkle (broken), chrome.selection.gt-blue (broken), chrome.scroll.no-smooth (broken), chrome.toolbar.select-glyph (broken), chrome.words.one-spelling (broken), chrome.menus.one-logo-row (broken), chrome.menus.preferences-named (broken), chrome.menus.download-four-first (broken), chrome.words.no-process-words (broken), chrome.menus.structure-sweep (broken), chrome.buttons.one-rule (broken), chrome.colors.pairs-at-floor (broken), chrome.font.one-subset (broken), chrome.font.on-demand (not driven), chrome.layers.tooltip-over-bar (broken), chrome.layers.toast-over-dialog (broken), chrome.layers.top-layer (broken), chrome.layers.follows-anchor (broken), chrome.radius.floating (broken), chrome.radius.windows (broken), chrome.radius.controls (broken), chrome.plates.separation (broken), chrome.scroll.default-everywhere (broken), chrome.scroll.stage-track (broken), chrome.numerals.tabular (broken), chrome.type.default-glyphs (broken), chrome.appearance.system-until-picked (broken), chrome.font.no-stylistic-sets (broken), chrome.font.tabular-figures (not driven), chrome.select.every-site (broken), chrome.select.keyboard (broken), chrome.select.pointer (broken), chrome.select.over-dialog (broken), chrome.select.placement (broken), chrome.select.phone (broken), chrome.select.look (broken).view.mode.viewing-hides-toolbar (broken), view.hide-menus-chevron (not driven), view.live-pointers.second-browser (not driven), view.comments.show-all-panel (broken), view.comments.modes-markers (not driven), shaders.view.play-setting (not driven), view.deck.surfaces (broken), view.book.hint-clear (broken).inbox.bell-panel-toggle (broken), inbox.settings-persist (broken), inbox.notification-arrives (not driven).brand.panel.opens (not driven), brand.logo.replace-every-slide (not driven), brand.logo.use-on-every-slide (not driven), brand.logo.remove (not driven), brand.colors.primary-live (not driven), brand.colors.palette-row (broken), brand.colors.control-ids-unique (broken), brand.colors.collab-rerender (not driven), brand.colors.version-history-entry (not driven), brand.colors.role-tooltips (not driven), brand.background.enter-keeps-open (broken), brand.fonts.roles (not driven), brand.footer.text (not driven), brand.counter.format (not driven), brand.frame.toggles (not driven), brand.appearance.default (broken), brand.export.pdf-logo (not driven), brand.surfaces.viewer-and-show (not driven), brand.layout.tiles-in-kit (broken), brand.agent.set-get (not driven), brand.objects.kit-colours-first (not driven), brand.panel.words-match-sheet (broken), brand.colors.free-field (not driven), brand.template.blank-no-gt-mark (broken), brand.template.blank-plain (broken), brand.template.blank-mark-not-an-object (broken).fonts.dropdown.opens (not driven), fonts.dropdown.apply-selection (not driven), fonts.dropdown.search (not driven), fonts.format-menu.row (not driven), fonts.more-fonts.licence (not driven), fonts.budget.no-load-before-ready (not driven), fonts.export.editable-names-face (not driven), fonts.export.pdf-face (not driven), fonts.face.reload-and-show (not driven), fonts.agent.font-list (not driven), fonts.inter.italic-release (broken), fonts.links.licence-v4-1 (broken), fonts.fallback.in-stack (broken), fonts.display-features.inter-only (not driven), fonts.catalog.geist (not driven), fonts.catalog.six-families (not driven), fonts.picker.specimen-rows (not driven), fonts.picker.recent-group (not driven), fonts.picker.search-category (not driven), fonts.preload.italic-on-edit-only (not driven), fonts.table.takes-family (not driven), fonts.field.own-face (broken).templates.gallery.page (broken), templates.gallery.strip-and-link (broken), templates.save.as-template (not driven), templates.save.same-name-replaces (not driven), templates.card.rename-and-delete (not driven), templates.default.use-for-new (not driven), templates.deck.read-only (not driven).assist.entry.title-row (not driven), assist.panel.first-line-and-cards (not driven), assist.tailor.dialog-one-undo (not driven), assist.tailor.agent-deck-tailor (not driven), assist.rewrite.card-accept-undo (not driven), assist.notes.draft (not driven), assist.free-ask.fallback-sentence (not driven), assist.mark.chip-and-history (not driven), assist.outside-write.snackbar (broken), assist.finder.terms (broken), assist.finder.ask-row (not driven), assist.quota.429 (not driven), assist.viewer.disabled (not driven), assist.agent.propose-accept (not driven), assist.panel.mode-aware (broken), assist.tailor.one-pass (broken), assist.snackbar.names-change (broken), assist.panel.words-and-layout (broken), assist.polish.agent-sweep (broken).sync.title.concurrent-both-kept (broken), sync.title.offline-both-kept (broken), sync.block.concurrent-same-offset-order (broken), sync.structural.concurrent (not driven), sync.viewer.live-updates (broken), sync.undo.after-remote (not driven), sync.resend.idempotent (not driven), sync.pull.no-listing (broken), sync.slide.concurrent-add-both-kept (broken), sync.title-row.save-words-truthful (broken), sync.reject.sentence-below-toolbar (broken), sync.write.5xx-keeps-document (broken), sync.recovered.no-plate-for-held-writes (broken).realtime.keystroke.within-300ms (broken), realtime.caret.within-300ms (broken), realtime.caret.offset-after-merge (broken), realtime.selection.outline-within-300ms (broken), realtime.block.drag-live (broken), realtime.title.two-typers (broken), realtime.join.chip-within-1s (broken), realtime.follow.for-everyone (not driven), realtime.agent.write-announced (broken), realtime.share-link.every-instance (flaky), realtime.pointer.second-browser (not driven), realtime.caret.dims-and-leaves (broken), realtime.card.chip-painted (broken), realtime.departed-guest.name-stable (flaky).setup.worker.health (not driven), setup.do.two-instances (not driven).logos.insert.row (not driven), logos.picker.search (not driven), logos.picker.paper-and-ink (not driven), logos.picker.your-brand (not driven), logos.picker.empty-state (not driven), logos.picker.recents (not driven), logos.picker.licence-words (not driven), logos.picker.chrome-1280 (not driven), logos.insert.one-click-asset (not driven), logos.insert.logo-size (not driven), logos.insert.mono-tint (not driven), logos.insert.every-slide (not driven), logos.tailor.find-customer-logo (not driven), logos.replace-image.row (not driven), logos.route.mark-headers (not driven), logos.index.refresh-dry-run (not driven), logos.index.refresh-fixture (not driven), logos.index.cached-offline (not driven), logos.cache.open-licence-only (not driven), logos.agent.search-insert (not driven), logos.picker.variants (not driven), logos.kit.find-a-logo (not driven), logos.export.svgblip (not driven), logos.dialog.results-in-view (broken), logos.dialog.sentence-case-whole-names (broken).shaders.insert.gallery-thumbnails (not driven), shaders.insert.selected-free-rectangle (broken), shaders.insert.words (broken), shaders.panel.section-groups (broken), shaders.panel.slider-live-undo (not driven), shaders.panel.preset-tiles (broken), shaders.panel.control-sentences (not driven), shaders.panel.kit-colours (not driven), shaders.panel.one-home (broken), shaders.frame.auto-capture (broken), shaders.frame.box-aspect (not driven), shaders.frame.reuse-and-prune (not driven), shaders.frame.one-capturer (not driven), shaders.background.place-answers (broken), shaders.perf.one-context (not driven), shaders.perf.hidden-pauses (not driven), shaders.agent.list-insert-set-render (not driven), shaders.background.add-to-theme (not driven), shaders.library.glyph-engines-render (not driven), shaders.frame.scrubber-capture (not driven), shaders.show.plays-when-on (broken), shaders.show.frame-when-off (not driven), shaders.insert.gallery-hover-live (not driven), shaders.frame.large-png-lands (broken), shaders.gallery.words-and-head (broken), shaders.insert.free-rectangle (broken), shaders.insert.chip-noun (broken).svg.import.upload (broken), svg.import.paste-file (not driven), svg.import.paste-markup (not driven), svg.import.drop (not driven), svg.import.url (not driven), svg.render.vector-at-zoom (not driven), svg.render.picture-gestures (not driven), svg.copy.markup (not driven), svg.export.pdf-vector (not driven), svg.export.pptx-svgblip (not driven), svg.export.pptx-fallback (not driven), svg.export.web-page (not driven), svg.sanitize.script-and-handlers (not driven), svg.sanitize.data-image-kept (not driven), svg.sanitize.cap (not driven), svg.sanitize.broken (not driven), svg.paste.keeps-text (broken), svg.intake.long-comment (broken).surface.menus.open-close-escape (not driven), surface.advanced.off-by-default (not driven), surface.advanced.on-shows-parked (not driven), surface.advanced.remembered (not driven), surface.parked-blocks-render (not driven), surface.parked-shortcut-unbound (not driven), surface.parked-block-core-rows (not driven), surface.domain.build-commit (broken), surface.skeleton.matches-editor (broken).