Skip to content

v0.1.2 Release#4

Merged
zippoxer merged 42 commits intomainfrom
dev
Jan 29, 2026
Merged

v0.1.2 Release#4
zippoxer merged 42 commits intomainfrom
dev

Conversation

@zippoxer
Copy link
Copy Markdown
Owner

@zippoxer zippoxer commented Jan 21, 2026

Summary

Major release focused on git workflow improvements and correctness.

Git Redesign (Primary)

  • PR-style diffs: Uses merge-base..head instead of live diffs - stable across rebases, matches GitHub behavior
  • "Applied" detection: Detects squash merges and cherry-picks via content comparison (merge-tree simulation)
  • "Missing" UX: Clear indicator when task branch is deleted but task not merged
  • Frozen stats: Stats recorded at merge/close time - merged tasks show correct data forever
  • Commit logging: Commits are logged to history.jsonl with timestamps
  • No-op merge finalize: subtask merge works when content is already in base

Migration

  • Automatic one-time migration from v0.1.1 schema
  • Backfills base_commit into task.opened events
  • Backfills frozen stats into task.merged/task.closed events
  • Uses schema versioning for fast skip on subsequent runs
  • Global marker prevents re-running migration on every command
  • Preserves correct timestamps (uses git commit dates, not migration time)

Send & Interrupt Fixes

  • Concurrency guards: Block concurrent sends to the same task
  • SIGINT handling: Proper cleanup during early claim phase
  • Interrupted output: Print 'interrupted' to stderr on signal (not stdout)

Merge Improvements

  • Uncommitted changes: subtask merge now works when base worktree has uncommitted changes
  • Conflict detection fix: Fixed merge-tree conflict detection edge cases

Review Command

  • --base flag: PR-style review of current branch against any base
  • Prompt building: Build review prompts on subtask side instead of passing flags to codex

Other Changes

  • Codex harness fix: Transient network errors no longer cause false failures
  • Claude model aliases: Config now uses opus/sonnet instead of full model IDs
  • Skill outdated warning: Warn when project-scoped skill is older than bundled version
  • Install UX improvements: Better flags, dynamic guide, cleaner output
  • Release flow: Interactive release with beta support

Test plan

  • go test ./... passes
  • Migration tested on real repos
  • Verified sort order preserved after migration
  • Tested "applied" detection with squash-merged tasks
  • Verified frozen stats display for merged tasks
  • Send concurrency e2e tests
  • Interrupt e2e tests

🤖 Generated with Claude Code

zippoxer and others added 12 commits January 21, 2026 04:40
* migrate: golden legacy fixtures + cleanup repo runtime
* Merge branch 'main' into refactor/install-config-ux
* tests+docs: cover new setup UX and runtime paths
* cli: add config command, preflight requirements, remove init
* core: git-root anchoring, global runtime, centralized migration

Subtask-Task: refactor/install-config-ux
* test: add setup UX e2e coverage

Subtask-Task: test/setup-ux-gaps
* Fix false merge detection for no-commit tasks

Subtask-Task: fix/false-merge-detection
* test: add thorough layout migration tests

Subtask-Task: test/migration-thorough
* Run legacy plugin migration once via marker
* Test: preserve complex settings during migration
* Remove broken plugin install; add install --guide

Subtask-Task: review/install-cleanup
The --guide flag is meant for Claude Code to read and follow, not for
humans. Rewrite the output to be structured instructions similar to
what the old setup.md contained.
The --guide flag is for Claude Code to read and follow, not for humans.
Rewrite output to be structured instructions explaining what Subtask is,
what setup does, and how to guide the user afterward.
…tput

- Add --harness, --model, --reasoning, --max-workspaces flags to install/config
- Add --scope flag for user vs project skill installation
- Make --guide output dynamic based on environment (git repo, available harnesses)
- Improve guide language: "spawn subagents" instead of "dispatch parallel AI workers"
- Show consistent config details after install/config (Scope, Harness, Model, etc.)
- Fix git.Output() to not log expected "not a git repo" errors
- Add InstallToProject() for project-scoped skill installation

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Add validation and e2e tests for install UX flags

Subtask-Task: review/install-ux
Change scope options from technical terms to user-friendly language:
- "User — available in all projects" → "Globally (recommended)"
- "Project — only this repository" → "This project only"

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* refactor(config): extract pure resolve/validate/build

Subtask-Task: refactor/config-pure-functions
- Show current state (latest stable, latest beta) before prompting
- Ask user which version to create with concrete options
- Support beta releases from dev branch
- Auto-increment beta numbers (v0.2.0-beta.1 → beta.2)
- Mark betas as prerelease to exclude from auto-update
- Skip Homebrew verification for beta releases

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages Bot commented Jan 21, 2026

Deploying subtask with  Cloudflare Pages  Cloudflare Pages

Latest commit: 591f654
Status:⚡️  Build in progress...

View logs

Clarify options when trying to send to a working task:
- You'll be notified when done, can send more context after
- To correct a worker going wrong direction: interrupt && send

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@zippoxer
Copy link
Copy Markdown
Owner Author

@codex

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 47717b7041

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread cmd/subtask/auto_update.go Outdated
Comment on lines +16 to +20
if err != nil || homeDir == "" {
return
}

userRes, err := install.AutoUpdateIfInstalled(install.ScopeUser, userBase)
res, err := install.AutoUpdateIfInstalled(homeDir)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Update project-scope skills during auto-update

If a user installed the skill with subtask install --scope project (still supported), the skill lives under the repo’s .claude/skills/subtask/SKILL.md, but runAutoUpdate now only calls install.AutoUpdateIfInstalled for the home directory, so project-scoped installs will never get refreshed and can drift to stale instructions even though auto-update runs.

Useful? React with 👍 / 👎.

Comment thread cmd/subtask/status.go
Comment on lines 11 to 13
func (c *StatusCmd) Run() error {
userBase, _, err := baseDirForScope(install.ScopeUser)
st, err := install.GetSkillStatus()
if err != nil {
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P3 Badge Report project-scope installs in status output

subtask status now only checks install.GetSkillStatus() (user scope), so in the scenario where the skill was installed with --scope project the command will incorrectly report “not installed/up-to-date,” which makes status output inaccurate for that supported install mode.

Useful? React with 👍 / 👎.

zippoxer and others added 6 commits January 22, 2026 11:13
- Change git repo warning from error (✗) to warning (⚠) since install works without one
- Clarify "you'll need one later to create tasks"
- Guide Claude to use judgment on git init (don't offer in ~ or /)
- Fix proof link in README to use markdown format

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Add --base flag to subtask review

Subtask-Task: review/add-base-flag
@yangwao
Copy link
Copy Markdown

yangwao commented Jan 22, 2026

time to add patreon:)

Design docs for the new task freshness approach:
- Historical diffs (GitHub-style, not live)
- Ancestor-only merge detection
- Commit logging to history (PR-style timeline)
- Simplified store access layer

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
zippoxer and others added 3 commits January 24, 2026 17:33
* fix(harness/codex): ignore transient error events on success
* docs: document codex harness error latching

Subtask-Task: fix/codex-network-error
- Change default Claude model from "claude-opus-4-5-20251101" to "opus"
- Change Sonnet option from full ID to "sonnet"
- Claude Code resolves aliases internally

Also add issue doc for history write timing concern.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Git redesign: PR-style diffs, applied detection, frozen stats, migration

Subtask-Task: impl/git-redesign
zippoxer and others added 17 commits January 25, 2026 18:30
…mestamps

* Fix gitredesign migration timestamps

Subtask-Task: fix/migration-timestamps
* Warn when project-scoped skill is outdated

Subtask-Task: fix/project-skill-autoupdate
* Add send --async and wait command

Subtask-Task: feature/async-send-wait
Ensures async output file contains explicit interrupt message.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Fix merge-tree conflict detection

Subtask-Task: fix/merge-conflict-detection
* Allow merge fast-forward with dirty base worktree

Subtask-Task: fix/merge-with-uncommitted
* test: add v0.1.1 fixtures for gitredesign
* perf: skip gitredesign migration after first run

Subtask-Task: perf/skip-completed-migration
Removes --async flag, wait command, and related state fields.
Keeps SKILL.md improvements (delegate guidance, task=branch clarification).
Includes concurrency guard fixes that need review.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Build review prompt in subtask for codex

Subtask-Task: fix/review-prompt-design
* fix(send): handle SIGINT during early claim
* fix(send): clear state before output and block concurrent sends

Subtask-Task: review/async-revert
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@zippoxer zippoxer merged commit 255293b into main Jan 29, 2026
1 check was pending
@zippoxer zippoxer deleted the dev branch January 29, 2026 23:29
kgruel added a commit to kgruel/subtask that referenced this pull request Apr 29, 2026
Split former zippoxer#7 (guardrails over escape hatches) into two distinct
goals: errors at subtask's own boundaries are actionable, and
destructive operations require explicit intent. They were really
doing different work — every error site vs. specific commands — and
bundling them obscured both. Removes the embedded "doesn't yet do"
TODO that was accreting in the design doc.

Extend zippoxer#4 (workspace opacity) to make the isolation model explicit:
git-level only; runtime resources (ports, services, databases) are
project-managed and shared by default. Surfaced after a discovered
incident where workers tested against the lead's dev server and
reported false positives.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants