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 rubricCandidatesMeaning
P02One conditional source-only recovery risk and one published-governance contradiction
P19Navigation, accessibility, performance, disclosure and other QoL work
P27Context 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

  1. 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.
  2. 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.
  3. 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.
  4. Repair the observed People-panel Forward mismatch and responsive toolbar arrow obstruction. In desktop General, Back then Forward restored ?panel=people without reopening People. Mobile successive arrows stopped at Pins/Search boundaries. Keyboard alternatives remained; this was not a total keyboard lockout.
  5. 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.
  6. 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 avoidQualified result
All collaboration features passedSafe reading/navigation was exercised; stateful execution was excluded
Three attachment-thread defectsOne blank compact heading; the voice parent and replies loaded
Assistant offline means broken backendOptional assistant is truthfully unavailable; activating it is a separate operator/product decision
Missing picker entry means Unicode is unsupportedThe bounded catalog returned no result for “melting”; custom/sticker scope is a separate decision
No contrast failure foundCorrected pseudo-opacity-aware measurement established one current-theme placeholder failure
Startup sync is disposable duplicationSync 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.