agent: builder model: opus max_turns: 80 budget_usd: 15 effort: medium —

Brief: B1193, fs::Path.parts() and describe’s last three (Part #125)

Issue #1193. ADR-319 D10 and Part III 17.1 (bf3baace) decide p.parts() -> Vec[Path]: the whole parts in order, the root (Windows: prefix) first, .. as written, . only where it leads, empty parts dropped; joined again they give a name == to p; it reads no file system. M18b (docs/briefs/m18b-describe2.md.report.md) stopped at without_dots for want of it. The shared binary target/fast/nikaia may come from a private copy: set NIKAIA_SYSROOT=/home/user/Nikaia/crates on every call of it. Build your changes on a private git archive HEAD copy (/tmp/claude-0/-home-user-Nikaia/b7e2d91b-1a15-5371-a36e-8c201aeab2d2/scratchpad/b1166/flip3.sh shows how) with the shared target dir and delete the copy after.

Facts

To build

  1. fs::Path.parts() as above, with tests/compiler/tests/fs_parts.nika and .stdout: rows /a/b, a/./b, ./a, a/../b, a//b, the empty name, and the parts joined back == to the name. Tests: nikaia test on that program and fs_canonical.
  2. without_dots, then crate_sources and crate_root (crates/nikaia/src/describe.rs) into tools/describe.nika, Rust forwards with unchanged signatures, each its own commit. Tests: cargo test --profile fast -p nikaia --test it -- describ shipped digest adopt manifest.

Rules

Report (at most 15 lines, to exactly /home/user/Nikaia/docs/briefs/b1193.md.report.md)

Fields of docs/supervisor.md, Briefs and reports: Result, Files, Commit, Body (optional), Fixes, Pushed, Tests, Gate, Deviation, Found, Needs, Changelog, Owner (a question for the owner), Disk freed, and last Attribution: with your commit trailer lines below it.

This site is open source. Improve this page.