Skip to content

Follow-ups from #885: auto-commit and workspace provider on an unborn HEAD #911

Open

Description

@tps-flint

Follow-ups from #885 (merged as a9c4076; closes #835), collected from the adjudicator's passes. One tracking issue per PR; each item becomes its own PR when picked up.

  • Flair-delivered auto-commit has no unborn-HEAD gate. _runAutoCommitLegacy runs tps agent commit directly; on a clean unborn tree that switches HEAD to task/<id> and then exits with "No changes staged". Give it the same gate the mail-task path uses.
  • Test the onTaskFailure paths on an unborn branch. The unborn diff guard is untested (removing it only changes filesChanged from undefined to [], which no test asserts), and there is no test of the dirty-unborn failure checkpoint that makes the branch's first commit.
  • One git binary for GitWorkspaceProvider. HEAD classification uses GIT_BIN (/usr/bin/git, TPS_GIT_BIN override) while the provider's other git calls use git from PATH; on a host without /usr/bin/git and with TPS_GIT_BIN unset, every snapshot throws. Decide one resolution for the whole provider (main's agent.ts and codex-runtime.ts already use GIT_BIN).
  • Name the probe in baseline()'s indeterminate-HEAD error. It gives the reason but drops which probe returned it.
  • Auto-commit off: unborn vs born asymmetry. A completed task on an unborn branch stays uncommitted, while one on a born branch gets a checkpoint commit. Decide whether that is intended and document or align it.
  • Real-Flair harness for the WorkspaceState / OrgEvent writes on this path (today a fake fetch through the real client).

🤖 Generated with Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions