v0.32.0 Phase 4 Tooling and Practical Integration Review
Result: complete with no open finding. One authored public package now demonstrates the entire configured synchronous-command use case. Compiler, editor, formatter, native execution, and installed-home checks consume that package instead of maintaining feature-specific Nocter source copies.
Shared Public Contract
examples/subprocess-configured owns the user-facing source, executable helper, working-directory marker, and exact output. Its command:
- selects
./workspacebefore resolving./helper.sh; - clears inherited environment, replaces
MODEtwice, and removes a temporary entry; - copies finite UTF-8 bytes into child stdin;
- captures and validates the helper's status, stdout, and stderr;
- prints the two decoded streams through public
std/ioandstd/stringAPIs.
nocter-test-support::PUBLIC_PACKAGE_EXAMPLES owns the corresponding host-side fixture and process contract once. Command tests materialize it and execute the native image. Native-session tests discover every public package from the same catalog. The installed-home CLI test builds and runs the package through a copied standard library. The website generator publishes the authored .nct and fixture sources from examples/.
Editor and Formatter Evidence
The language-server test opens configured.nct as an ordinary package source and requires complete analysis without diagnostics. It verifies the public current_dir hover, declaration navigation to std/process/index.nct, implementation navigation to configuration.nct, and receiver-aware completion containing all eight Command methods under incomplete syntax. The completion assertion depends only on an incomplete semantic snapshot, not a particular failure-phase ordinal.
The formatter's repository example test discovers every .nct source under examples/, so the new package is checked for canonical spelling and idempotence without another path list.
Review
No source contract is duplicated between compiler crates. The public example uses only exported standard-library declarations. Tooling consumes normal package discovery and semantic products; it has no configured-subprocess special case. The specification now labels v0.32.0 as an implemented candidate while the release index and root README continue to identify v0.31.0 as the published release. Phase 5 can qualify and review the full candidate without changing the feature surface.