2026-09-11 - selfish-cli stands alone again: the local commit stamp, and the logging that logged nothing
Took the oops-libs cleanup BUILDING.md had been flagging as a
regression: selfish-cli depended on oops-build
and oops-log from the sibling oops-libs, so a
clone of only SELFish did not build. Both dependencies are gone
(D104).
The commit stamp came home in a few lines.
oops_build::emit() → emit_commit() in
build.rs (git short SHA into OOPS_COMMIT, a CI
override winning, -dirty when the tree is modified);
oops_build::line!() → version_line() in
main.rs. The macro was only a macro because of the crate
boundary - env!/option_env! have to expand at
the consumer's call site - and inside selfish-cli that boundary is gone,
so it is a plain function now. --version is byte-for-byte
what it was: selfish v0.1.0 - <sha>-dirty.
The surprise: the logging logged nothing.
oops-log installs a tracing subscriber, and I
went in expecting to reimplement it. Grep found no
tracing:: event anywhere in the workspace, and no library
crate depends on tracing at all - the subscriber had been
wrapping a facade nobody called. So it is deleted, not reimplemented,
and tracing left with it. Cargo.lock shed 162
lines: oops-build, oops-log, tracing, tracing-core, tracing-subscriber
and their transitive deps.
Docs and CI followed the code. README, BUILDING, the
library feature doc, the bin/selfish header and the CI
workflow all described the dependency as a live regression; all now say
the property holds, and CI drops its bootstrap step because there is
nothing left to bootstrap.
One circumstance worth recording: this landed on top
of a concurrent session's in-flight PS4/PS5 → Orbis/Prospero rename, at
the operator's direction - the two changes share a commit rather than
the cleanup waiting for the working tree to clear. The rename touches
selfish-container, selfish-title and
data/sdk-versions.toml; the cleanup touches
selfish-cli, the workspace manifest and the docs, so they
do not overlap in substance.