91 lines
3.4 KiB
Markdown
91 lines
3.4 KiB
Markdown
---
|
|
id: PLN-0129
|
|
ticket: system-run-cart
|
|
title: Remove Userland Run Cart ABI Surface
|
|
status: done
|
|
created: 2026-07-03
|
|
ref_decisions: [DEC-0035]
|
|
tags: []
|
|
---
|
|
|
|
## Briefing
|
|
|
|
`DEC-0035` removes `system.run_cart` from the userland guest ABI. This plan
|
|
covers the public ABI, syscall registry/declaration surface, generated metadata,
|
|
and documentation/spec propagation. It does not change runtime dispatch behavior
|
|
or direct boot tests; those are covered by `PLN-0130` and `PLN-0131`.
|
|
|
|
## Objective
|
|
|
|
Remove `system.run_cart` from every app-callable/userland ABI surface while
|
|
preserving non-guest direct boot entrypoints.
|
|
|
|
## Dependencies
|
|
|
|
- Source decision: `DEC-0035`.
|
|
- Must stay scoped away from `AGD-0041` and `AGD-0044`.
|
|
- Coordinate with `PLN-0130` so runtime dispatch does not retain a callable
|
|
success path after the declaration is removed.
|
|
|
|
## Scope
|
|
|
|
- Remove or retire `Syscall::SystemRunCart` from userland-visible syscall
|
|
declarations in `crates/console/prometeu-hal/src/syscalls.rs`.
|
|
- Remove the `system.run_cart` registry entry from
|
|
`crates/console/prometeu-hal/src/syscalls/domains/system.rs` and
|
|
`crates/console/prometeu-hal/src/syscalls/registry.rs`, unless implementation
|
|
discovers an internal-only registry distinct from guest ABI.
|
|
- Remove generated/static bytecode or VM-facing declarations that expose
|
|
`system.run_cart`, including known references in
|
|
`crates/console/prometeu-bytecode/src/model.rs` and
|
|
`crates/console/prometeu-vm/src/virtual_machine.rs` if they include it.
|
|
- Update docs/specs that mention `system.run_cart` as app-callable.
|
|
- Update `AGD-0004` references only if they become factually misleading after
|
|
removal; do not close or reinterpret that agenda.
|
|
|
|
## Non-Goals
|
|
|
|
- Do not implement `Home -> another Game`.
|
|
- Do not add a replacement app navigation syscall.
|
|
- Do not implement `.pmc`.
|
|
- Do not change direct host/CLI/debug boot behavior.
|
|
- Do not add compatibility stubs for obsolete guest code.
|
|
|
|
## Execution Method
|
|
|
|
1. Search for `SystemRunCart`, `run_cart`, and `"system", "run_cart"` across
|
|
`crates/`, `docs/`, and `discussion/`.
|
|
2. Remove `system.run_cart` from userland syscall domain declarations and
|
|
lookup/name registries.
|
|
3. Remove generated/static guest-facing metadata entries that advertise
|
|
`system.run_cart`.
|
|
4. Update docs/specs to state that cartridges are booted by host/system paths,
|
|
not by guest syscall.
|
|
5. Compile the workspace or targeted crates to find stale references.
|
|
|
|
## Acceptance Criteria
|
|
|
|
- No userland ABI declaration advertises `system.run_cart`.
|
|
- No generated guest metadata exposes `run_cart` as callable.
|
|
- Documentation/spec text no longer describes app-callable cartridge boot.
|
|
- Any retained code path is clearly internal-only and is not reachable through
|
|
guest syscall lookup.
|
|
|
|
## Tests
|
|
|
|
- Add or update syscall registry tests to assert `system.run_cart` is absent
|
|
from the public/userland registry.
|
|
- Run targeted tests for `prometeu-hal`, `prometeu-bytecode`, and
|
|
`prometeu-vm` if available.
|
|
- Run repository validation commands used for syscall declaration consistency.
|
|
|
|
## Affected Artifacts
|
|
|
|
- `crates/console/prometeu-hal/src/syscalls.rs`
|
|
- `crates/console/prometeu-hal/src/syscalls/domains/system.rs`
|
|
- `crates/console/prometeu-hal/src/syscalls/registry.rs`
|
|
- `crates/console/prometeu-bytecode/src/model.rs`
|
|
- `crates/console/prometeu-vm/src/virtual_machine.rs`
|
|
- `docs/specs/runtime/`
|
|
- `discussion/workflow/agendas/AGD-0004-system-fault-semantics-and-control-surface.md`
|