porting/verbatim-import.md |
How the copy was made: raw blob extraction with every filter disabled, the four separate ways an ordinary working-tree copy fails, restoring the executable bit, and the files that had to be force-added. |
porting/verification.md |
The verifier in full: its two independent checks, every counter, the exit codes and why "the check failed" and "the check did not happen" are different numbers, the licence notice as a machine-read allowlist, its self-tests, and the line-ending trap. |
architecture/overview.md |
The processes and what each one is responsible for, the shared packages, the ports and bind addresses, the environment variables, the runtime requirements, the failure modes and the security posture. |
architecture/daemon.md |
The only stateful process: what it owns, its startup order, the three probe endpoints, the command-line entry point, every network and path variable, and why reaching its API is equivalent to shell access. |
architecture/web-runtime.md |
The single-page interface and the three genuinely different ways it reaches the daemon — development rewrites, static export, packaged server-side rendering — plus the locales, the boundary it may not cross, and the Material Design 3 token layer as it currently stands. |
architecture/desktop-shell.md |
The desktop main process: why it never guesses the web port, the sidecar control channel that doubles as the test harness, the frameless Windows window and its renderer-drawn title bar, the window-control channels, and the preload trust boundary. |
architecture/packaged-runtime.md |
What actually launches when somebody runs the installed application: the launcher, the custom URL scheme and its retry, sidecar stamps and namespaces, the child-environment allowlist, the namespace-scoped path layout, and a packaged-versus-development comparison. |
architecture/data-directory.md |
The single most important invariant in the codebase: one process, one data root, resolved once. What derives from it, how it propagates to child processes and packaged builds, the sanctioned exceptions, the known escape patterns, and what actually breaks when it is violated. |
build/ci.md |
The verification gate and the release run, step by step: why the gate checks out without the submodule, what the release notes carry, the triggers, the tokens, and the unsigned-installer position. |
build/from-source.md |
Building locally: the prerequisites, the package manager on Windows, the line endings to fix before cloning rather than after, installing, running, typechecking, testing, packaging, and what goes wrong at each step. |
release/release-pipeline.md |
The whole release run, step by step: the line-ending guard, port verification inside the release job, install, typecheck, the Windows-only identity suites, the installer build with its explicit existence check, the smoke test, the notes, and publication. |
release/packaged-smoke-test.md |
The only step that checks the product works: it installs the built installer, launches it, makes the running process answer its own health endpoint, screenshots it, uninstalls it and asserts zero residue. Assertion by assertion — with an explicit list of what it does not prove. |
release/line-count.md |
How the published figure is produced by a committed script at the released commit, what its two scopes and three totals mean, how authorship is attributed per surviving line rather than by summing added lines, and why nobody ever counts by hand. |
release/code-names.md |
How the dim sum code name is chosen from the bundled catalogue, why the spent dishes are read out of prior releases rather than a counter, why a dish is spent exactly once, and why a missing dish never blocks a release. |
release/release-assets.md |
What each published file is, which uploads go to the run rather than the release, and what is deliberately absent — no signature and no non-Windows artifacts; new Windows releases also carry Squirrel RELEASES, NuGet packages and the project-owned metadata feed. |
troubleshooting/line-endings.md |
A byte comparison reporting thousands of differing files against a tree nobody had touched, because the checkout translated line endings on the way to disk — and why the guard has to come before the checkout step rather than after it. |
troubleshooting/platform-specific-tests.md |
Tests asserting a Unix executable bit on a filesystem that has none, and tests building a symlinked layout a runner may not be permitted to create. Both fixed by splitting the suites by what each platform can answer — a split, not a skip. |
troubleshooting/unbuilt-package-imports.md |
Three suites dying at import time with a missing module, because they import built output that the install step does not build. Zero tests executed and no failures reported means nothing loaded — look for an import error, not an assertion. |
troubleshooting/test-timeouts.md |
Two platform-gated specs doing real filesystem work, inheriting a five-second default budget written for a fast local disk — and how to tell a budget failure from a hang before assuming either. |
troubleshooting/packaging-schema-drift.md |
An installer build rejected before packing anything, because a configuration property moved between major versions of the build tool and now fails schema validation on sight. Nothing was attempted, so nothing was tested. |
standards/language-modes.md |
The three language modes and the two tone sliders, the rule that voice changes and facts never do, and what registering a Cantonese locale in the application actually requires. |
standards/material-design-3.md |
Material Design 3 conformance and appearance customization: the token handoff map, the component inventory, the colour roles, the shape and motion scales, and the window chrome. |
standards/regex-builder.md |
What the pattern builder must offer, why it has to be anchored beside the field it belongs to rather than shared, which engine and dialect it names, and the guards that keep a pasted pattern from freezing the interface. |
standards/tabs.md |
Tabbed navigation: overflow, reordering, pinning, grouping, the four tab-discovery searches, the two bulk-close actions, and why persistence needs a stable identity rather than an index. |
standards/notifications.md |
Non-blocking notifications and the notification centre, then the super-confirmation gate for destructive actions — which this tree flags as the largest undesigned gap in the whole set, because it guards the actions where getting it wrong destroys someone's work. |
standards/accessibility.md |
Keyboard reach, visible focus, roles and names, contrast, reduced motion, the no-clipping matrix, element sizing, and the rule that anything drawn to look operable must actually be operable. |
standards/export-and-bulk-actions.md |
Export as a property of every surface rather than a feature of a few, the format matrix, the archive options, multi-select and bulk actions, and saying what will be lost before an export runs instead of truncating quietly. |
standards/releases.md |
The installer requirement, the line-count rules, the code names, the in-app changelog viewer, local version history, the startup surprise, and how the dim sum catalogue is assembled. |
standards/appearance-customization.md |
An appearance editor on every rendered element rather than a global theme alone, an infinite colour picker with a colour-space translator, word-processor-depth typography, named presets that export and import, and per-element and global resets. |
standards/command-palette.md |
One shortcut over every command, setting and destination, with live inline controls in the rows rather than labels alone, and a teleport that opens the surface and reveals the exact control instead of dropping the user on the right tab. |
standards/changelog-viewer.md |
Every released version readable in the application itself, with a commit link on every entry, an advanced date filter that also accepts typed dates, a search that composes with it rather than overriding it, and export that honours both. |
standards/version-history.md |
A local version history covering documents, records and settings — not documents alone — where restoring is recorded as a new revision so an undo can itself be undone, and history is append-only rather than rewritten. |
standards/super-confirmation.md |
The gate every destructive action passes: two independently operated keys, then a full-range slider, an always-available emergency exit, and focus returned to the control that started it. The largest undesigned gap in the whole set. |
standards/dim-sum-surprise.md |
One launch in ten shows a dish, named in both languages, from a catalogue bundled in the repository — non-blocking, auto-dismissing, never gating startup, and with no off switch at all. |
standards/local-assets.md |
No script, stylesheet, font or image fetched from a third-party origin and no tracking, on every surface individually — with the publish-time gate that reads the built output and refuses to ship anything that would reach off-origin. |
standards/external-editor.md |
Detecting installed editors, persisting the choice, degrading with a clear message when none is found — and opening every export in one action, as a workspace root rather than a single file with no context around it. |
standards/overlays.md |
Every popover, menu and anchored panel paints its own background, border and elevation, stays bounded by the viewport, and scrolls inside that bound rather than silently hiding the content past a height cap. |
standards/context-menu-shortcuts.md |
Every context-menu item showing the shortcut that actually works in that context, derived from the same registry that binds it so the two cannot drift — and every context menu carrying its own search field. |
standards/long-operations.md |
A long operation reporting real progress in the surface that started it rather than a bare spinner, guarding against re-entry in the handler and not only by disabling a button, and offering its recovery route where the failure was discovered. |
standards/documentation-currency.md |
Documentation, changelog and roadmap brought current in the same task that changes the project — because stale documentation is worse than none, being confidently wrong with no way for the reader to tell. |
site/pages-deployment.md |
How this page is deployed, the publish-time gate that reads the built output for any reference to a third-party origin, the base-path trap, and the rule about what a download button may point at. |
api/README.md |
The daemon's HTTP surface grouped by route file, its base URL, its authentication and origin posture, and the security notes that apply before exposing it beyond the local machine. |