From d3f77d68509d5d7f4790c8c3edc5cba4ade64f40 Mon Sep 17 00:00:00 2001 From: "shoney.arickathil" Date: Fri, 21 Aug 2026 05:59:21 +0200 Subject: [PATCH] docs: discard 2026-08-01 shard-actor plan (epoll-based) - io_uring is a must; epoll approach discarded (developer decision) - plan superseded by shard-fiber-arc plan of record; banner + row in plan/discarded.md; file kept as idea reference - three live pointers repointed: status language-track row 8, principles enforced-by, story 08 note Co-Authored-By: Claude Fable 5 --- docs/00-principles.md | 3 ++- docs/00-status.md | 2 +- docs/plan/discarded.md | 1 + .../08-shard-actor-runtime.md | 3 ++- .../plans/2026-08-01-shard-actor-vm-runtime.md | 12 +++++++++++- 5 files changed, 17 insertions(+), 4 deletions(-) diff --git a/docs/00-principles.md b/docs/00-principles.md index 24ee993..f4a1670 100644 --- a/docs/00-principles.md +++ b/docs/00-principles.md @@ -55,7 +55,8 @@ Cross-shard work is a message send that moves ownership. There is no *Why:* sharing mutable state buys contention, locks, and heisenbugs; moving ownership buys linear scaling and per-shard GC. *Enforced by:* [plan 09](plan/09-concurrency-scaleout.md) (shipped on the -Rust runtime), [the shard-actor plan](superpowers/plans/2026-08-01-shard-actor-vm-runtime.md). +Rust runtime), [the shard-fiber arc plan](superpowers/plans/2026-08-20-shard-fiber-arc.md) +(stages 1+2 landed; supersedes the discarded 2026-08-01 shard-actor plan). ## 6. The runtime never stops diff --git a/docs/00-status.md b/docs/00-status.md index af28755..3c4c743 100644 --- a/docs/00-status.md +++ b/docs/00-status.md @@ -420,7 +420,7 @@ check mode, and the `internal/` dep boundary (WO-E108). Driver-only. | 5 | Haxe-parity language surface — **`?T` forced handling first**, then switch expressions, records, enum payloads, try/catch, statics, `using`, modules, `is`, `pub(read)`, `#if` | [plan 8](plan/compiler/2026-08-01-haxe-parity-language.md) | | 6 | Program mode + systems stdlib — `fn main`, exit codes, `fs`/`proc`/`net`/`time`/`json` | [plan 9](superpowers/plans/2026-08-01-program-mode-stdlib.md) | | 7 | log-watcher proof — the sample compiles and detects a silent death live | [plan 10](superpowers/plans/2026-08-01-log-watcher-sample.md) | -| 8 | Shard-actor runtime | [plan 4](superpowers/plans/2026-08-01-shard-actor-vm-runtime.md) | +| 8 | Shard-actor runtime | [arc plan](superpowers/plans/2026-08-20-shard-fiber-arc.md) (plan 4 ✖ discarded 2026-08-21 — epoll-based) | | 9 | Database engine binding | [plan 5](superpowers/plans/2026-08-01-db-engine-binding.md) | | 9b | `@table` + relations + language-integrated query — comprehension queries, `ref`/`backlink` navigation, GroupBy aggregates; acceptance: new `docs/examples/employee` sample | [spec](superpowers/specs/2026-08-15-table-relations-query-design.md) · [plan](plan/compiler/2026-08-15-employee-relations-query.md) | | 20 | Cross-program tables — attach to a running program's database (IPC string in wo.toml, manifest-granted rights, owner stays the single writer) | **no spec yet** — four open forks recorded in the iteration; brainstorm before planning | diff --git a/docs/plan/discarded.md b/docs/plan/discarded.md index ca189cf..95e6b4a 100644 --- a/docs/plan/discarded.md +++ b/docs/plan/discarded.md @@ -54,4 +54,5 @@ Status board: [`00-status.md`](../00-status.md) · Doctrine: [`../00-principles. | **Raw code in plan documents** | Plans carry concept, reason, and required behavior in words; the executor writes the code. | | **`##ui` / `.htmlx` LiveView frontend track** | 2026-08-17: removed the 9-doc `exploration/ui/` design set, the `14-mvc-ui-implementation` plan, and the `ui-htmlx-live` plan. All were built on the non-advancing Rust runtime (`.dev/reference/crates/wo-htmlx`, `cargo run`, WebSocket live-patches) and contradict the current woc/wovm direction. The 13d pricing-UI row went with them. Revisit only if a UI story is re-opened on the woc/wovm stack. | | **Old-runtime "front door" + v1 design docs** | 2026-08-17: removed `writeonce-pl.md`, `runtime/wo-language.md`, `future-scope/ai-agents-content-management.md`, the numbered v1 set `02-recovery`/`03-data`/`04-ui`/`05-datalayer`/`06-markdown-render`/`07-ssl`, and `runtime/database/05-go-sdk.md`. They pitched the old Rust `wo` runtime (REST + LiveView + SQL/Cypher) as the current language and contradicted the shipped woc/wovm toolchain. | +| **The 2026-08-01 shard-actor plan (epoll-based)** | 2026-08-21: [`superpowers/plans/2026-08-01-shard-actor-vm-runtime.md`](../superpowers/plans/2026-08-01-shard-actor-vm-runtime.md) marked discarded, file kept as reference. Superseded by the arc plan of record ([`2026-08-20-shard-fiber-arc.md`](../superpowers/plans/2026-08-20-shard-fiber-arc.md), stages 1+2 landed): io_uring is a MUST and the epoll-based approach is discarded — the old plan's "epoll now / io_uring later" premise is inverted, and its substrate (`runtime/wo-rt.c`) left with the Rust track 2026-08-18. | | **The entire Rust `wo` runtime track** | 2026-08-18: removed `crates/` (the Stage-2 Rust runtime), `Cargo.toml`/`Cargo.lock`, `prototypes/` (wo-rt-c stale duplicate + wo-db C++ ref), the `rt-c-*` justfile recipes, the Rust engineering plans (`docs/plan/05..16`, `docs/plan/done/`), and `docs/runtime/` (the old runtime overview + 7-phase DB design series + async/fibers/gc/surreal essays). It was the prior, abandoned architecture — fully independent of the woc/wovm stack. Master now reflects only the current single-language project; the removed track lives in git history if ever needed as reference. Kept: the syscall/postgres/assembly/c-runtime **exploration studies** (they fed the current C runtime) and the discarded/learnings registers. | diff --git a/docs/stories/language-runtime-database/08-shard-actor-runtime.md b/docs/stories/language-runtime-database/08-shard-actor-runtime.md index 2ab018f..5e43001 100644 --- a/docs/stories/language-runtime-database/08-shard-actor-runtime.md +++ b/docs/stories/language-runtime-database/08-shard-actor-runtime.md @@ -10,7 +10,8 @@ > workload is **iteration 24 (chat: WebSocket pub/sub)**. The pre-existing > plan (`docs/superpowers/plans/2026-08-01-shard-actor-vm-runtime.md`) > predates inferred GC (7b), the unified surface, and the DB decision — -> it is a source of ideas, NOT the plan of record. +> it is a source of ideas, NOT the plan of record (✖ DISCARDED +> 2026-08-21: epoll-based; io_uring is a must). > > **RE-SEQUENCED 2026-08-21** (developer decision): the brainstorm → > spec → plan happened. The arc's plan of record is diff --git a/docs/superpowers/plans/2026-08-01-shard-actor-vm-runtime.md b/docs/superpowers/plans/2026-08-01-shard-actor-vm-runtime.md index b871073..c1f361a 100644 --- a/docs/superpowers/plans/2026-08-01-shard-actor-vm-runtime.md +++ b/docs/superpowers/plans/2026-08-01-shard-actor-vm-runtime.md @@ -1,6 +1,16 @@ # Shard-Actor VM Runtime Implementation Plan -> **Status: ⬜ pending** (story iteration 8) — thread-per-core shards, per-shard heaps, ownership-move messaging. Must follow story iteration 7b (inferred GC + incremental mark-sweep): the collector settles before shards multiply. Board: [00-status.md](../../00-status.md) +> **Status: ✖ DISCARDED 2026-08-21** (developer decision) — superseded by +> the arc plan of record, +> [`2026-08-20-shard-fiber-arc.md`](2026-08-20-shard-fiber-arc.md), whose +> stages 1+2 landed 2026-08-20. This plan's premise is inverted twice: it +> builds on "epoll now / io_uring when the loop module ports phase C" +> (the io_uring-first directive made the ring primary, and the epoll-based +> approach is discarded), and it ports patterns from `runtime/wo-rt.c`, a +> tree removed 2026-08-18 with the Rust track. Kept as historical +> reference for the mailbox-ring and heap-stamping idea shapes only. +> Recorded in [`plan/discarded.md`](../../plan/discarded.md). Board: +> [00-status.md](../../00-status.md) > **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. >