Skip to content

BEAR-119 Remove neutral bear titles and restore uninstall cleanup - #126

Merged
mergify[bot] merged 6 commits into
mainfrom
codex/BEAR-119-remove-bear-uninstall-cleanup
Aug 9, 2026
Merged

BEAR-119 Remove neutral bear titles and restore uninstall cleanup#126
mergify[bot] merged 6 commits into
mainfrom
codex/BEAR-119-remove-bear-uninstall-cleanup

Conversation

@ericlitman

@ericlitman ericlitman commented Aug 9, 2026

Copy link
Copy Markdown
Owner

Summary

  • remove the neutral bear as a writable/public task-title state and delete the onboarding command, flag, prompts, and follow-up surface that existed only to add it
  • restore uninstall cleanup by refocusing the existing complete-catalog planner on one-prefix removal and reusing the serial mounted exact reader/setter, with the initiating task last
  • split uninstall into explicit prepare and artifact-commit phases so a bare confirmed command cannot bypass title cleanup
  • keep only the current v3.0.1 automatic-updater invocation accepted as a narrow upgrade bridge

🐻 remains only as a recognized legacy prefix so ordinary status updates and uninstall can remove titles created by the regression. The five semantic status icons are unchanged. There is no final scan, retry, queue, controller, marker, pacing, migration, general compatibility layer, or title-writer coordination fence.

Review boundary

The installed Codex skill is the trusted lifecycle orchestrator; --commit is its explicit internal phase attestation, not a security boundary against a local user deliberately bypassing the supported flow. Adding process handshakes, tokens, or persisted proof would violate BEAR-119's no-marker/no-resume boundary without protecting against a local caller that can already delete the same files.

The uninstall guarantee covers the one fresh prepared snapshot: each prepared row receives an immediate exact reread and at most one acknowledged removal before the skill invokes commit. It does not freeze user-owned Codex titles against later concurrent writes. Cross-task writer coordination is explicitly outside this ticket and would expand the product beyond the requested regression fix.

Verification

  • go test ./...
  • go test -race ./...
  • go vet ./...
  • python3 scripts/validate-experiments.py
  • formatting, git diff --check, shell checks, and guide/site byte parity
  • Darwin arm64 and amd64 release builds
  • exact-candidate v3.0.2 release smoke

Live Desktop canaries

The first full-catalog canary exposed the real regression footprint: 307 of 362 unarchived rows carried removable ThreadBear prefixes. One fresh serial pass confirmed 307/307 exact removals with zero drift and zero unconfirmed results, initiating task last, followed by artifact teardown.

After review corrections, exact final arm64 candidate SHA-256 5f05b9f872ca101f545feaca8df399d8752342fe0c7f7365e3b25da16ad0f864 refused bare confirmed uninstall while remaining healthy. A fresh 362-row preview then found only the two reseeded controls; the final cell removed both exactly in historical-then-initiator order and ran explicit artifact commit. All owned artifacts were absent, and unrelated hooks/config remained byte-identical. No final task scan or post-commit title call ran.

The cleanup canaries are recorded as seam evidence only; repaint and restart-persistence claims remain grounded in the existing rendered capability experiments.

Linear: BEAR-119

@openswebot openswebot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Open SWE Review found 4 potential issues.

Open in Web

Comment thread cmd/threadbear/install.go
Comment thread cmd/threadbear/main.go
Comment thread assets/skill/SKILL.md
Comment thread docs/experiments/registry.json Outdated
@ericlitman

Copy link
Copy Markdown
Owner Author

@Mergifyio queue

@mergify

mergify Bot commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

Merge Queue Status

  • Entered queue2026-08-09 01:38 UTC · Rule: default · triggered by @ericlitman with the @mergifyio queue command
  • Checks skipped · PR is already up-to-date
  • Merged2026-08-09 01:38 UTC · at 8dd2da1d2e843a7c20470023ef1c8b5b91cec3ff

This pull request spent 26 seconds in the queue, including 3 seconds running CI.

Required conditions to merge
  • github-review-approved [🛡 GitHub repository ruleset rule Mergify automatic merge queue]
  • all of [🛡 Merge Protections rule Queue ready pull requests]:
  • any of [🛡 GitHub branch protection]:
    • check-success = verify
    • check-neutral = verify
    • check-skipped = verify
  • any of [🛡 GitHub branch protection]:
    • check-success = Open SWE Review
    • check-neutral = Open SWE Review
    • check-skipped = Open SWE Review
  • any of [🛡 GitHub repository ruleset rule Mergify automatic merge queue]:
    • check-success = @mergify/Mergify Merge Protections
    • check-neutral = @mergify/Mergify Merge Protections
    • check-skipped = @mergify/Mergify Merge Protections
  • any of [🛡 GitHub repository ruleset rule Review gate]:
    • check-success = Open SWE Review
    • check-neutral = Open SWE Review
    • check-skipped = Open SWE Review

@mergify mergify Bot added the queued label Aug 9, 2026
@mergify
mergify Bot merged commit d348955 into main Aug 9, 2026
4 checks passed
@mergify mergify Bot removed the queued label Aug 9, 2026
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.

1 participant