Skip to content

Search is only available in production builds. Try building and previewing the site to test it out locally.

oc4 — ideas

Источник: dev/fera-research/docs/oc4/STATUS.md (read-only; сгенерировано scripts/sync-docs.mjs)

Zone: NEW ideas across the Fera ecosystem (features, optimizations, architectural moves, tooling). Orientations: offline-first UX, perf (OPTIM-IDEAS), plugins/wasm, calls, sync.

Full inventory of the existing proposal space first — ADRs 001–031, OQ-001…027, OPTIM-IDEAS 1–5, PREDICT, RESEARCH-OQ-003, FUTURE-CHECKS, chroix-project specs — so new ideas do not repeat existing ones. Key finding that enabled the work: OPTIM-IDEAS 1–5 carry no IDs and no per-idea status (they are inboxes, not a decision register), so there is no “already rejected” list to respect and the idea space is genuinely open.

Two ideas were killed by this check before being written: a power-budget governor (already fully formulated as OQ-024) and a media-dedup-by-CID idea (covered by ImageRef’s content hash in CHROIX-DISPLAY-LIST §7).

# File One line Area
01 idea-01-fork-sync-xtask.md Automated upstream-drift detection for the 5 long-lived forks + the rustc pin. ADR-012/026 accept the burden in prose only; no tooling exists. Turns OQ-024(d)’s rustc pin from an unenforced assumption into a CI gate. (Prerequisite: oc5’s unpinned-git-deps finding.) tooling
02 idea-02-determinism-seam-trace-replay.md No Clock abstraction anywhere in docs or code (outbox.rs:129,154,180). Blocks end-to-end testing, the jitter test, the benchmark pass, Argon2 cost measurement, and PREDICT:220’s replay harness. Inject clock+entropy now (lint-enforced); whole-app trace replay follows free. arch/testing
03 idea-03-plugin-ui-display-list.md “mutate UI” is a named capability (ADR-002:55) that is never specified, while ADR-022 freezes capability IDs at v1. Make it a bounded subset of the chroix display list — sandboxing becomes a parsing problem, not a policy problem. plugins/ui
04 idea-04-internal-vs-interop-doctrine.md Promote the one-off sentence in RESEARCH-OQ-003 §2.2 into a named rule + 5-question test. Retro-resolves the apparent ADR-020 vs OQ-024(d) contradiction; decides trace container format before anyone builds one by accident. arch/storage
05 idea-05-sync-ledger-typestate.md Offline-first answers “can I read what I have”, not “what is my relationship to the server”. Corpus has zero sync-state vocabulary while the architecture manufactures ≥6 divergence conditions and NAMING-UX §3 promises an honest indicator. ADR-015 discipline applied where it hasn’t reached. offline-first
06 idea-06-workspace-consumer-gate.md 6 of 6 real crates have zero consumers; ~27% of real code is unreachable and green. The gate is right-shaped per-item, blind to per-crate system quality. Plus two cheap fixes: ungate the storage contract suite, adopt chroix’s existing trybuild for the protocol typestate’s commented-out proof. tooling/testing
07 idea-07-op-queue-effects-vs-intent.md The outbox is typed to one operation (Vec<Message>). Split pending effects (replay each) from pending intent (coalesce to latest, reconcile on apply) with per-kind merge policy. Gives ADR-025’s unsettled secret-chat question a home as a policy value. storage/offline
08 idea-08-static-module-loader.md One ModuleLoader, two impls. Static mode is the dev build and the hermetic production build (zero dlopen, no code-loading surface) — the “risky” config pays the maintenance cost of the common one. modules/tooling
09 idea-09-per-tier-module-abi.md Builds on oc5’s panic-containment finding by answering its closing question: the module ABI is per-tier, not global. Shrinks the UB class and the process-isolation cost to the one optional tier that deserves them. modules/trust

Collaboration (built on other agents, per mandate)

Section titled “Collaboration (built on other agents, per mandate)”
  • oc5 — three HIGH findings absorbed: unpinned-git-deps is a prerequisite for idea-01; no-panic-containment’s closing question is answered by idea-09 (per-tier split: first-party → Rust ABI already decided by OQ-024(d) or better static; third-party plugins → WASM so no native ABI; third-party native → the only tier needing the extern "C" contract); local-id-reuse-ack-misdelivery is now idea-07’s primary motivating defect, reframed as positional vs stable identity rather than a counter bug.
  • oc2 — idea-03 depends on chroix’s display list; oc2’s no-display-list-producer + G1 (side-table offsets hardcoded 0) are recorded as prerequisites, not surprises.
  • oc1 — flagged two findings for them: (a) PREDICT.md:233-234 puts the behaviour log in the strong tier and says the classification “is OQ-005”, while ADR-031 (which resolved OQ-005) puts the predictor event log in the metadata tier; (b) PREDICT.md:92/237 still says data/predictor/ where OQ-009 resolved to data/accounts/<id>/predictor/ + cache/predictor/.

Not written (deliberately, or out of time)

Section titled “Not written (deliberately, or out of time)”
  • One “Insights” surface covering predictor + telemetry + module inventory — blocked on resolving the PREDICT/ADR-031 tier conflict first; would be premature to design the UX around an unresolved classification.
  • A proposal for OQ-022’s fuel-declaration surface (WIT type vs manifest field) — OQ-022’s own design pass is the right owner; my idea-03 only touches the one capability that is frozen and unspecified.
  • Calls-area ideas: rstgcalls is pre-code with no numbers anywhere in the corpus, so any perf idea there would be speculation. Deferred until Phase 0 produces measurements.