Release pipeline go-live: Successfully published
cositos v0.1.3 to both PyPI (cositos) and
npm (@cositos/front). All three release workflow jobs 🟢
green.
PyPI trusted publishing: Configured PyPI trusted
publisher for sashakile/cositos with
release.yml workflow. PyPI publishes automatically on
git tag v*.
npm publishing: Worked through 3 iterations of the
npm release workflow:
v0.1.0: scoped name @cositos/front — 404 (org didn't
exist), tried cositos-front unscoped — 403 (token
permissions), tried without --provenance — still 403, then
user published manually
v0.1.2: user manually published cositos-front from
local machine
v0.1.3: restored @cositos/front scoped name, configured
npm trusted publishing, added repository field to
package.json for provenance verification. All green.
CI fixes: Added repository field to
front/package.json (sashakile/cositos git URL)
for npm provenance validation.
Next: Future versions:
mise run bump-version X.Y.Z && git tag vX.Y.Z && git push origin main --tags
Sessions 18:20 (testaruda —
2 sessions)
Cold-start classification (TIA-CHG-009):
Implemented — "unknown" fingerprint →
unresolved instead of changed. Wrote
coldstart-unresolved.toml contract. Updated tasks.
Content fingerprinting (TIA-CHG-003, TIA-CORE-002):
Added Store::compute_fingerprint (blake3), fingerprint
comparison in load_selection_context, fingerprint storage
in content_units table. 4 new unit tests. Closed
testaruda-imo.
Adapter protocol phase 1 (TIA-ADAPT-001..013):
Built AdapterIO subprocess management, handshake, discover,
protocol version check, timeout, graceful degradation.
AdapterRegistry for extension→binary resolution. 8 new
tests. Closed testaruda-9uw.
CI exit codes (TIA-CI-001..008): Implemented exit
codes 0/10/20, --shadow flag (forces exit 10),
--json flag (CiPlan output), reason display in human
output. 7 new tests. Closed testaruda-gbs.
Adapter protocol phase 2 (TIA-ADAPT-005, 006, 009):StaticDepsResult, DepEdge,
ContentFingerprint types. static_deps(),
fingerprint() methods on AdapterIO.
store_static_deps on Store. 6 new tests. Closed
testaruda-6js.
E2E wiring:src/config.rs —
testaruda.toml parser with [adapters] section.
init writes default config. select runs
adapter pipeline (discover+static-deps→store→engine). New
discover command. find_project_root made
public.
Reference adapters:testaruda-adapter-rust (scan #[test], parse
use imports, blake3 fingerprint).
testaruda-adapter-python (scan test_*.py,
parse imports, blake3 fingerprint). Both skip target/,
.git/.
Rule-of-5 review & fixes: Fixes applied for
shadow mode exit code, relative path resolution, adapter IO polling,
inconsistent serialization, missing reason output, dead conditional,
adapter binary not found error, path extension parsing, lost IO error
info. 31 tests pass, 0 warnings.
Arc: Testaruda went from isolated spec+engine to
fully wired E2E system with adaptive plugin architecture, reference
adapters, CI integration, and first release.