Files
dsh-context/tests
bowenliang123 7b61d5ddc7 feat(browser): dual-face compatibility across the dsh 0.1.1/0.1.2 seams (#26)
0.1.2 rewrote the client composition and the history transport; every seam
this plugin touches now resolves by feature detection and degrades visibly
instead of erroring:

- history reads: `remote.session.page` (0.1.2; the inclusive cut
  `throughSeq` pinned to the target seq) over `connection.api.sessions.history`
  (0.1.1); both served envelopes unwrap ({ok,value} and {result:{ok,value}});
  packed chunk-row records skip (final events always ride verbatim); a
  malformed payload rejects into the retryable state instead of claiming
  absence.
- conversation join: `useChat` (ChatSnapshot.legacy.nodes) over the session
  snapshot's top-level `nodes`, both seats invoked in a stable hook order —
  fixes the empty File Activity card on 0.1.2 (#26).
- image loading: `uiConversation.imageUrl` (0.1.2) over
  `conversation.resolveImage` (0.1.1); absent faces degrade the cards to
  metadata-only.
- `/context` command: waits for the `inputTriggers` service (ctx.inject)
  instead of racing module arrival order, which 0.1.2's finer modules broke;
  the modal resolves `sessions` at close time for the same reason.

Absent faces drop features (static out-of-window hints, no command) — the
tab and the modal never render an error page.
2026-08-28 22:32:19 +08:00
..