This is a dated audit of Svelte Chat, observed on 29–30 October 2026 UTC. It is not a feature-completion certificate, a production incident report, or a repair release. No application build or deployment was performed.
What was established
Seven expert reports and an independent review produced 21 proposed items. A three-way duplicate was merged; optional assistant unavailability was retained as a deployment limitation, not a defect. The final checklist has 18 candidates:
| Priority under the audit rubric | Candidates | Meaning |
|---|---|---|
| P0 | 2 | One conditional source-only recovery risk and one published-governance contradiction |
| P1 | 9 | Navigation, accessibility, performance, disclosure and other QoL work |
| P2 | 7 | Context labels, discovery, catalog choices, scaling and documentation polish |
The inventory accounts for 82 route/action/dialog/menu/responsive surfaces. All six existing rooms were read; all six also received a 390×844 coarse-pointer layout sweep. Accounting is not universal success: 49 rows combine observation with excluded transitions, 9 are source-only/safety-excluded, 12 are affordance-only/execution-excluded, 8 are bounded live observations and 4 record live defects.
Highest-value order
- Preserve recovery of a send that fails before server persistence. Source clears the persisted draft before acknowledgment and holds pending payloads in component state that room entry resets. Navigation/reload can therefore lose application-supported recovery [INFERENCE]. No message was sent or failure induced; this is a conditional source-only risk, not demonstrated production loss. Already-persisted messages and uploaded bytes are not proven lost.
- Correct the standing overview’s “public, no login” claim. The app required native edge sign-in during this audit. Edge authentication remains distinct from self-declared in-app naming/ownership; no authentication bypass was demonstrated. The older overview is intentionally left unrepaired by this audit-only publication.
- Align the six-second Undo promise with teardown behavior. Source room/page-exit paths flush deletion commits early. Early non-cancellable dispatch is source-established; actual deletion on a live exit was not exercised.
- Repair the observed People-panel Forward mismatch and responsive toolbar arrow obstruction. In desktop General, Back then Forward restored
?panel=peoplewithout reopening People. Mobile successive arrows stopped at Pins/Search boundaries. Keyboard alternatives remained; this was not a total keyboard lockout. - Improve the desktop search placeholder. Its 12px text, including pseudo-element opacity 0.5, measured approximately 3.23:1 against the current light background, below 4.5:1. Its accessible name remained present. An earlier measurement omitted pseudo opacity and was corrected; no whole-app or dark-theme contrast verdict is claimed.
- Investigate room-start stalls and bounded image previews. Original samples included a 1301ms long task; independent observations found 714ms/494ms maxima. A small preview fetched a 1964491-byte original. These are shared-host, finite observations, not field INP, an A/B speedup or proof of the cause. Any rendition work must preserve private access/cache boundaries.
Other P1 work concerns current assistant-status placement, an actionable unnamed state, and slash-command discovery in populated rooms. The current capability banner was offviewport in one captured history state, but historical assistant-error text and Jump to latest remained visible; this does not prove that every explanation was absent or the view was at latest.
P2 candidates: give attachment-only threads a nonempty summary; expose existing filter help at the fresh desktop search entry; decide whether to broaden the bounded emoji catalog; name menu containers; reduce repeated aggregation while retaining identity/cursor/sequencing inputs; update or scope the dependency and route inventories.
Corrections and decisions
| Overstatement to avoid | Qualified result |
|---|---|
| All collaboration features passed | Safe reading/navigation was exercised; stateful execution was excluded |
| Three attachment-thread defects | One blank compact heading; the voice parent and replies loaded |
| Assistant offline means broken backend | Optional assistant is truthfully unavailable; activating it is a separate operator/product decision |
| Missing picker entry means Unicode is unsupported | The bounded catalog returned no result for “melting”; custom/sticker scope is a separate decision |
| No contrast failure found | Corrected pseudo-opacity-aware measurement established one current-theme placeholder failure |
| Startup sync is disposable duplication | Sync also provides identity, directory, cursors and sequencing absent from SSR |
Not proven and safety limits
No posting/model requests, display-name/member/room changes, reactions/pins/forward/delete execution, uploads/recording, preference/permission changes, clipboard/download execution, typed draft lifecycles or synthetic fault injection were performed. Source-only recovery and Undo risks are not reproduced incidents. Unavailable presence/message variants, name-gate cancellation, Alt-arrow shortcuts, long-press, dark theme, physical devices, screen-reader speech and full WCAG conformance remain unverified.
Strict audit conformance is blocked: runtime reasoning roles did not match the required launch levels, advisor sessions were active despite disabled configuration, and an early observation guard gap means zero automatic read-cursor changes cannot be certified. A changed General unread badge was observed; exact attribution and durable mutation were not forensically proved. No compensating state change was attempted.
Evidence context
Detailed reports, exact routes, screenshots, DOM/AX/network metadata, source anchors, reviewer corrections and checksum records are retained in the operator’s D-595c audit bundle. Source inspection used checkout baseline e4bffcf5; the active deployment remained the 6 October build, and source/deployed-byte equality was not established. Source-only anchors include Composer.svelte:284-303, room page lifecycle/queue/undo code, undo.ts:54-58, and the standing dependency/route tables in Architecture. No public source remote was established, so no repository URL is invented here.
For existing setup and historical implementation context, see Setup, Architecture and Research. Those pages were audited, not comprehensively repaired by this summary.