Task 6 review findings, all verified before fixing:
- self-improvement-keyless.test.ts: the proposal_spend negative test's inner
timing bound (30_000ms) equaled the test's own timeout, making the
assertion's diagnostic message unreachable - the test runner's generic
timeout would always win first. Tightened to 15_000ms.
- self-improvement-e2e.test.ts: added a deadline-sanity pin next to the
"valid until" regex match (the signing window must be meaningfully in the
future, not just present and Z-suffixed) and strengthened the critique/
endorse browse assertions to require a non-zero section count, so a
zero-result response can no longer pass.
- run.test.ts: reworded a banner comment ("funds" -> "AP3X"), matching this
branch's content rule against "funds"/"pay"/"earn" vocabulary.
- self-improvement.ts: harmonized all four build_self_improvement_* tools'
agentDid parameter description to make the trap unmistakable - this field
is the trailing 64-hex asset-name segment of an agent's DID, NOT the full
did:vector:agent:... string (confirmed live in Task 6: passing the full
string throws a Lucid serialization error). Description-only change;
regenerated the snapshot and confirmed the delta touches exactly these
four entries, nothing else.
Also corrected two printed numbers in task-6-report.md's narrative (a
gitignored file, not part of this commit): the itemized fee subtotal was
stated as 49.444332, recomputes to 49.444305; the inferred register-fee
residue was stated as 0.321503, recomputes to 0.321530. Verified by hand
before editing. The report's table and top-line balance delta were already
correct.