Skip to content

Surface a loud failure when tt release/assign can't run (stripped-PATH exit 127) #59

Description

@mostlydev

Problem

Under a stripped-PATH sandbox, tt (shebang #!/usr/bin/env node) returned exit 127 (node not found) and a tt release silently no-op'd. The agent kept believing it held the stick — a dangerous, hard-to-debug ownership desync seen in mined session logs.

Nuance

Exit 127 means tt never executed, so there is no in-process place to print an error. The durable fix is twofold:

  1. Instruction/docs: a non-zero exit from tt release/assign/take means the command did NOT take effect — re-verify ownership before assuming the turn changed. (Add to the skill + docs/receive-consumer-contract.md.)
  2. Robustness (optional): a tt shim/wrapper that resolves node more robustly under restricted PATH, or a documented absolute-node-path invocation.

Touch-points

  • src/cli/turn-commands.ts (release/assign result surfacing for in-process failure modes).
  • The bin shim (dist/cli.js shebang) / packaging.
  • Skill guidance.

Context

Follow-up CT-H from the 0.8.0 instruction hardening. See docs/releases/0.8.0.md.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions