Skip to content

Conversation

@zippoxer
Copy link
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
  • Preserves correct timestamps (uses git commit dates, not migration time)

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
  • Review --base flag: PR-style review of current branch against any base
  • Install UX improvements: Better flags, dynamic guide, cleaner output
  • Release flow: Interactive release with beta support

Test plan

  • go test ./... passes
  • Manual testing of migration on real repos (finality, subtask)
  • Verified sort order preserved after migration
  • Tested "applied" detection with squash-merged tasks
  • Verified frozen stats display for merged tasks

🤖 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

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

Deploying subtask with  Cloudflare Pages  Cloudflare Pages

Latest commit: d561dce
Status: ✅  Deploy successful!
Preview URL: https://4e18f591.subtask.pages.dev
Branch Preview URL: https://dev.subtask.pages.dev

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
Owner Author

@codex

Copy link

@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 on lines 16 to 20
if err != nil || homeDir == "" {
return
}

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

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 on lines 11 to 13
func (c *StatusCmd) Run() error {
userBase, _, err := baseDirForScope(install.ScopeUser)
st, err := install.GetSkillStatus()
if err != nil {

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

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 12 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
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.

3 participants