Files
HealthLog/src/lib/demo-refusal.ts
T
Marc-André Bombeck dd72634791 Rebuild the Coach thinking row as one calm line
While a turn runs the Coach now shows a single row: a brain icon, the
current step in the answer's text size with a shimmer passing through it
and fading dots, and a chevron once there are steps to open. There is no
running clock any more, and the interim table preview with its sparkline
no longer renders under the row; interim tables stay in state until the
answer's own results show them.

When the answer is done the row reads "Thought process · N steps" with
proper plurals, and "Answer needed" while a clarifying question waits.
It never opens by itself, and a row opened during the run closes when
the turn ends. Opened, the steps form a vertical list with an icon per
kind of work on a thin connector line, and a reasoning round shows its
summary under its title.

The shimmer and the dots are a `text-shimmer` utility and a reusable
WaitingText component, both still under reduced motion.

The demo's write block now carries `meta.errorCode: "demo.readOnly"`,
listed in the error-code catalogue, and the Coach answers it with an
honest line instead of the provider-outage copy.

Removes the interim preview component, the elapsed-seconds and summary
helpers, and their message keys in all seven locales.
2026-10-07 16:55:25 +02:00

16 lines
543 B
TypeScript

/**
* The refusal a demo deploy answers a write with (`DEMO_MODE=true`): the
* proxy's mutation block and the routes that bypass the proxy send the same
* body, a 403 whose `meta.errorCode` names it, so a client can tell "the demo
* does not do this" from an outage and say so.
*
* Client-safe: no server import.
*/
export const DEMO_READ_ONLY_CODE = "demo.readOnly";
export const DEMO_REFUSAL_BODY = {
data: null,
error: "Demo mode: modifications are disabled",
meta: { demo: true, errorCode: DEMO_READ_ONLY_CODE },
} as const;