writeonce/docs/examples
shoney.arickathil 735fd270db feat: chat sample + gate (T8/T9, IN PROGRESS) + stop-drain semantics
- docs/examples/chat: registry (call consumer) / room / reader+writer
  actor pair per connection over ws_accept + wsframe; presence,
  broadcast, cross-room isolation, mailbox-full = drop-from-room;
  reader tail sends hardened (a full writer no longer orphans the fd)
- RUNTIME SEMANTICS CHANGE (the drain): SIGTERM no longer kills parked
  fibers from outside — the plane WAKES them and each wait RESOLVES
  (deadline'd waits answer their timeout result, sleeps return early,
  plain waits answer WO_SYS_STOPPED and unwind THAT fiber alone; main's
  STOPPED still ends the program). Workers keep adopting their inboxes
  after stop until eng_shutdown. This is what lets a program drain:
  chat's close frames now reach clients (byte-verified 0x88), then
  main returns and the reap runs
- also: SIGPIPE ignored process-wide (EPIPE trap instead of death);
  two-phase engine teardown (real drops while arenas+routing live,
  settle passes for routed frees) — fixes the registry-map leak and
  the drain UAF ASan found
- gate scripts/chat-accept.sh + just chat: handshake independently
  verified, functional matrix on BOTH backends, 1k-hot-room soak
  (1000/1000 in ~35ms), drain close-frames, SIGTERM exit 0, ASan leg
  clean. OPEN: soak-fds check (18 fds settle slower than the window)
  + full battery after the semantics change — NOT yet run
- committed for manual testing at the user's request

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-23 09:53:21 +02:00
..
chat feat: chat sample + gate (T8/T9, IN PROGRESS) + stop-drain semantics 2026-08-23 09:53:21 +02:00
db-actor feat: arc stage 3 T7 — transparent DB actor (WO_T_DB hole closed) 2026-08-21 13:10:26 +02:00
db-bench feat: O(1) read path — index probe wired end to end 2026-08-22 16:44:56 +02:00
employee chore: untrack employee build artifact, gitignore its target/ 2026-08-16 19:01:33 +02:00
employee-list docs: pending iterations renumbered by dependency + priority 2026-08-20 14:31:09 +02:00
fibers feat(examples): fibers — the hybrid scheduler demonstrated + gate 2026-08-20 10:00:40 +02:00
gc-cycle feat(compiler): ?T forced handling — WO-E211/E212/E213 + narrowing (iter 5) 2026-08-19 17:47:13 +02:00
log-watcher feat(compiler): WO-E205 structural interface satisfaction + call-arg checks 2026-08-19 17:53:40 +02:00
operators feat: iteration 36 task 5 — operators sample, docs closeout 2026-08-22 21:42:08 +02:00
site feat: writeonce.de tutorial site + wo-html library (two-dep full stack) 2026-08-23 01:51:14 +02:00
web-app feat: iteration 35 — net seams + the serving slice (fiber-per-connection) 2026-08-23 08:04:32 +02:00
wo-html feat: writeonce.de tutorial site + wo-html library (two-dep full stack) 2026-08-23 01:51:14 +02:00
writeonce-framework feat: TE rejection + listen backlog 1024 + the 1k soak gate 2026-08-23 08:23:55 +02:00