You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs+cli: purge stale SFRS acronym for the CLI Standard
SFRS was a mistaken acronym that only ever meant "a feature
(description/specification)". Reword every reference across docs and
zamak-cli source to name the Spacecraft Software Dual-Mode
Self-Documenting CLI Standard (v1.0.0) in full, or "the CLI Standard"
in shorthand, per construct commit a301baf's precedent. Ticket IDs
SFRS-1..17 become CLISTD-1..17 (TODO.md, CONTRIBUTING.md, sbom.rs).
cargo check -p zamak-cli --tests passes clean after the
sfrs_conformance.rs -> cli_standard_conformance.rs rename and the
matching test-fn rename.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
-`zamak-uefi::paging` — arch-dispatching `build(boot_services, kernel) -> u64` that returns the per-arch root-table physical address (PML4 on x86, L0 on AArch64, Sv48 root on RISC-V, PGDH on LoongArch)
401
401
-`zamak-uefi::main` refactored: deleted `stub_entry` and all `#[cfg(target_arch = "x86_64")]` gates on the shared boot path. Single arch-neutral entry point now dispatches through `paging::build` and `handoff::jump_to_kernel`. `cargo check --target aarch64-unknown-uefi` and `riscv64gc-unknown-none-elf` both clean.
402
402
-`Permissions::KERNEL_LOAD_AREA` — RWX coarse preset for kernel-image mapping parity across arches until per-PHDR splitting is implemented
403
-
-**SFRS dual-mode CLI** — `zamak-cli` now conforms to `SS-SFRS-SPACECRAFT-SOFTWARE-CLI v1.0.0`:
403
+
-**Dual-mode CLI (CLI Standard)** — `zamak-cli` now conforms to the Spacecraft Software Dual-Mode Self-Documenting CLI Standard (v1.0.0):
| M6-1 |`[~]`| LoongArch64 UEFI boot path — `arch::loongarch64::paging::PageTableBuilder` (4-level PGDH, MAT-encoded cache policy, PLV/NX encoding) + `paging::loongarch64::build` + `handoff::jump_to_kernel` (CRMD clear IE, PGDH, STLB flush) all implemented and compile for `loongarch64-unknown-none`; 5 new paging tests pass. Full `cargo check --target loongarch64-unknown-uefi` blocked on rustc upstream — the target does not yet exist (`uefi-services` uses the `efiapi` ABI which is unsupported on `loongarch64-unknown-none`) |
200
200
| M6-2 |`[✓]`|`BOOTLOONGARCH64.EFI` — `release.yml` matrix entry for `loongarch64-unknown-none` executed by `v0.7.0` tag push on 2026-04-21 |
201
-
| M6-3 |`[~]`| Performance tuning — LTO + `codegen-units = 1` + `panic = abort` in release profile; CI `size-gate` enforces ≤120% size target. **Part 1 (instrumentation) landed**: `zamak-uefi` emits `ZAMAK_PHASE=<name> tsc=<u64>` + `ZAMAK_TSC_MHZ=<n>` markers at 6 boot phases (uefi_entry / config_parsed / menu_finished / kernel_loaded / requests_fulfilled / pre_exit_boot_services) via `rdtsc()`; new `zamak-cli bench parse-serial [--tsc-mhz <n>] [<path>]` sub-command ingests a captured UEFI serial log and emits an SFRS envelope with `{tsc_mhz, phases:[{phase, tsc, delta_cycles, delta_ns}]}`. Hardware leg (Part 2) still needed: boot a USB stick (`target/esp.img` or any assembled image works as-is) on a physical x86-64 UEFI machine with COM1 captured, feed the log through `zamak bench parse-serial`, and compare Δ-ns against Limine v10.x on the same hardware. |
201
+
| M6-3 |`[~]`| Performance tuning — LTO + `codegen-units = 1` + `panic = abort` in release profile; CI `size-gate` enforces ≤120% size target. **Part 1 (instrumentation) landed**: `zamak-uefi` emits `ZAMAK_PHASE=<name> tsc=<u64>` + `ZAMAK_TSC_MHZ=<n>` markers at 6 boot phases (uefi_entry / config_parsed / menu_finished / kernel_loaded / requests_fulfilled / pre_exit_boot_services) via `rdtsc()`; new `zamak-cli bench parse-serial [--tsc-mhz <n>] [<path>]` sub-command ingests a captured UEFI serial log and emits the response envelope with `{tsc_mhz, phases:[{phase, tsc, delta_cycles, delta_ns}]}`. Hardware leg (Part 2) still needed: boot a USB stick (`target/esp.img` or any assembled image works as-is) on a physical x86-64 UEFI machine with COM1 captured, feed the log through `zamak bench parse-serial`, and compare Δ-ns against Limine v10.x on the same hardware. |
202
202
| M6-4 |`[✓]`| Full rustdoc — zero warnings on `cargo doc --no-deps` for zamak-core / theme / proto / cli / macros |
## CLI Standard — Dual-Mode CLI (Spacecraft Software Dual-Mode Self-Documenting CLI Standard v1.0.0) — zamak-cli
220
220
221
221
| # | Status | Task |
222
222
|---|--------|------|
223
-
|SFRS-1 |`[✓]`| §3.1 / §4.1: global `--json` flag + `--format <json\|jsonl\|yaml\|csv\|explore>` with TTY auto-detect (json default when piped, under `AI_AGENT=1`, or `CI=true`) |
224
-
|SFRS-2 |`[✓]`| §3.2: full exit-code map (0 success / 1 general / 2 usage / 3 not-found / 4 permission / 5 conflict + reserved 6 rate-limited) via `error::ErrorCode`|
|SFRS-6 |`[✓]`| §3.5 / §4.3: structured JSON error envelope on stderr (`error.code`/`exit_code`/`message`/`hint`/`timestamp`/`command`/`docs_url`/`io_kind`) with stable `UPPER_SNAKE_CASE` codes via `error::emit`|
229
-
|SFRS-7 |`[✓]`| §3.6: stdout=data / stderr=diagnostics split; `--fields a,b,c` projection via `Value::project`; `--format jsonl` streams each data row as one line |
|CLISTD-1 |`[✓]`| §3.1 / §4.1: global `--json` flag + `--format <json\|jsonl\|yaml\|csv\|explore>` with TTY auto-detect (json default when piped, under `AI_AGENT=1`, or `CI=true`) |
224
+
|CLISTD-2 |`[✓]`| §3.2: full exit-code map (0 success / 1 general / 2 usage / 3 not-found / 4 permission / 5 conflict + reserved 6 rate-limited) via `error::ErrorCode`|
|CLISTD-6 |`[✓]`| §3.5 / §4.3: structured JSON error envelope on stderr (`error.code`/`exit_code`/`message`/`hint`/`timestamp`/`command`/`docs_url`/`io_kind`) with stable `UPPER_SNAKE_CASE` codes via `error::emit`|
229
+
|CLISTD-7 |`[✓]`| §3.6: stdout=data / stderr=diagnostics split; `--fields a,b,c` projection via `Value::project`; `--format jsonl` streams each data row as one line |
0 commit comments