Files
dsh-recall/test
NotExpectedYet 28df7a0e56
Release / release (push) Successful in 6s
fix: put the recall chip in the header utilities, not the cell the sidebar's expand button owns
The chip registered into `conversation.session.header.corner`, which is a
SINGLE cell the product already occupies: the client catalog lists its
occupants as `client-ui-sidebar-right ExpandButton` and its replaceRisk as
`shadows-shipped-ui`. Two registrations at priority 0 in a single cell are a
hard error inside the slot registry, and the error lands in the OTHER
plugin's `slots.inject()` callback: the renderer's `changed` handler catches
it, calls `stop()` on that inject controller — killing that contribution for
the rest of the fiber's life — and rethrows it from a microtask, which is the
uncaught `single slot ... already has a registration at priority 0 (registered
by dsh-recall)` in the console. So the chip was not merely racing the shipped
right-sidebar expand control; it was taking it down.

It now registers into `conversation.session.header.utilities`, a list cell
(`replaceRisk: none`, right-aligned, same Session scope and therefore the same
`useProjection` prop) as `{ id: 'dsh-recall', order: 20 }`, so it stays at the
right-hand end without competing for a seat.

The suite could not have caught this: the slot stub accepts any registration
and knows nothing about cardinality, keys or collisions. It now asserts the
chip carries a list id and that this plugin registers nothing into the corner.
2026-09-27 06:36:49 +01:00
..
2026-09-26 05:35:29 +01:00
2026-09-26 05:35:29 +01:00
2026-09-26 05:35:29 +01:00
2026-09-26 05:35:29 +01:00
2026-09-26 05:35:29 +01:00
2026-09-26 05:35:29 +01:00
2026-09-26 05:35:29 +01:00
2026-09-26 05:35:29 +01:00
2026-09-26 05:35:29 +01:00
2026-09-26 05:35:29 +01:00
2026-09-26 05:35:29 +01:00