Skip to content

Fix ThreadBear default-sandbox title path for v3.0.1 [BEAR-116] [BEAR-117] - #125

Merged
mergify[bot] merged 5 commits into
mainfrom
codex/BEAR-116-v3.0.1-default-sandbox
Aug 8, 2026
Merged

Fix ThreadBear default-sandbox title path for v3.0.1 [BEAR-116] [BEAR-117]#125
mergify[bot] merged 5 commits into
mainfrom
codex/BEAR-116-v3.0.1-default-sandbox

Conversation

@ericlitman

Copy link
Copy Markdown
Owner

Linear: BEAR-116
Linear: BEAR-117

Why

v3.0.0 still asked the local helper to start Codex App Server and read ThreadBear subject state during every ordinary turn. That does not fit Codex's default :workspace boundary, and the per-task state is unnecessary for a small title decorator.

PR #124 and the v3.0.0 release remain useful historical evidence, but they are not acceptance for this correction. BEAR-116 and BEAR-117 are reopened until v3.0.1 is published and verified.

What changed

  • Made threadbear title stateless. It returns only the caller ID and fixed safety policy.
  • Moved the immediate current-title read into the mounted Codex app and kept the mounted native setter as the sole writer, with at most one write and no explicit current-task ID.
  • Removed per-task subject records and their locks. Six exact visible ThreadBear prefixes are the whole ownership boundary; other safe bytes and user emoji remain intact.
  • Kept App Server only for explicitly permissioned, fully paginated historical onboarding.
  • Resolved onboarding Codex only from fixed official Desktop locations and required Codex 0.146.0 or newer; repository-controlled PATH is ignored.
  • Kept BEAR-117 in the release: friendly jargon-light previews, explicit consent, a no-change approval-disabled path, and a durable final ThreadBear recap 🐻 for install, onboarding, update, and uninstall.
  • Prepared the v3.0.1 changelog and rewrote release smoke/docs/tests around the smaller boundary.

Verification

  • go test -count=1 ./...
  • go test -race -count=1 ./cmd/threadbear
  • go vet ./...
  • gofmt, git diff --check, shellcheck, shell syntax, guide/bootstrap parity
  • experiment validator: 27 experiments, 7 capabilities, 10 preflights, 14 negative fixtures
  • Darwin arm64 and amd64 CGO-disabled release builds
  • exact embedded ordinary/onboarding JavaScript execution tests
  • exact-candidate real-LaunchAgent release smoke

Exact committed artifacts:

  • arm64 SHA-256 7676fedfa90fea3e27427efe553877b32c2f36af09a41c5ba72ae975b13b9fc7
  • amd64 SHA-256 d025bb9cce6dd945b9e3ab5354602f5cabf55f78e680b4e05c8c05af923e8cb1
  • installed skill SHA-256 3f915f1b06485a8f05443cd9cac3e076e07d78f6ffd9f83809cf70175a45deec, 5,108 bytes

Live Codex Desktop 26.803.41515 evidence:

  • Default :workspace ran the stateless helper successfully with no App Server or title-state access.
  • The exact managed cell made one mounted write and immediately rendered ➡️ Diagnose ThreadBear failures in the header/sidebar.
  • A genuine Desktop process replacement changed PID 37695 to PID 169, loaded the new managed block, retained the exact title, and left status/updater health ready.
  • The complete read-only onboarding preview exhausted all 360 tasks: 335 safe/already decorated, 25 deliberately untouched, zero writes.
  • The older candidate was previewed and removed; the committed candidate passed exact smoke and reinstalled byte-identically.
  • TB-EXP-0116-007 records the hashes and rendered proof.

Fable Advisor verdict: Ship.

This host disables approval requests, so the approvals-enabled prompt/resume path is covered by exact extracted-JavaScript and smoke execution rather than a live prompt. The live approval-disabled path stops without changing tasks or settings and gives a plain next action; no permission bypass or synthetic task was introduced.

@ericlitman
ericlitman marked this pull request as ready for review August 8, 2026 19:56
@ericlitman

Copy link
Copy Markdown
Owner Author

@Mergifyio queue

@mergify

mergify Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

Merge Queue Status

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

This pull request spent 13 seconds in the queue, including 2 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

@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 3 potential issues.

Open in Web

Comment thread cmd/threadbear/codex.go Outdated
Comment thread cmd/threadbear/state.go Outdated
Comment thread docs/experiments/registry.json
@mergify mergify Bot added the queued label Aug 8, 2026
@mergify
mergify Bot merged commit bed4552 into main Aug 8, 2026
4 checks passed
@mergify mergify Bot removed the queued label Aug 8, 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