fix(activation): always open the launched document and start without the inbox when it is unavailable #53

Open
james.maes wants to merge 1 commits from fix/activation-startup into main
pull from: fix/activation-startup
1 Commits
Author SHA1 Message Date
james.maesandClaude Fable 5.2 1c680d7c02 fix(activation): always open the launched document and start without the inbox when it is unavailable
node / node (push) Successful in 24s
build / scripts (push) Successful in 24s
windows / windows (push) Successful in 2m5s
build / windows (push) Successful in 2m5s
The reader created its activation pipe outside any error handling, so it
could not start while the pipe name was held by a reader that had not
finished closing or by another program. It now starts without an inbox,
and releases the pipe before the instance key so the next reader can
create its own.

A launch whose request the running reader does not take (no listener, a
refusal, or a deadline) used to exit with code 1 and no window. It now
opens its documents in its own process. An argument that cannot name a
document is dropped and reported while the usable ones still open.

The request, schema and inbox move to Core/Activation, inside the
coverage gate and the core test run. Deadlines run on a TimeProvider:
a sender waits two seconds for the pipe and each side ten seconds for one
exchange, and the tests reach both without waiting. The listener's
disconnect and Dispose share a lock instead of catching the race between
them.

ADR-0005, the threat model, the fuzzing guide and the GitHub shadow
workflows follow the move.

Closes #52

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Signed-off-by: James Maes <james@kof22.com>
2026-11-10 17:51:51 -06:00