Skip to content

feat: refine upgrade mechanism; minor tweaks; docs - #24

Merged
aorumbayev merged 9 commits into
mainfrom
feat/refactor
Jul 16, 2026
Merged

feat: refine upgrade mechanism; minor tweaks; docs#24
aorumbayev merged 9 commits into
mainfrom
feat/refactor

Conversation

@aorumbayev

Copy link
Copy Markdown
Member

No description provided.

aorumbayev and others added 7 commits July 12, 2026 21:26
Let developers plan multiple board tasks from a regular session without
opening the board for each ticket, and restart intake or review helpers
after success or mid-run—not only on auto-detected failure.

New tasks route the worktree through the v1 session-create query so they
stay isolated; the create-task orchestration is shared between the board
and the server tool, with pure task-metadata helpers living in the domain
layer.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Make the maintainability gate real back-pressure: raise complexity
--threshold from 1 (a no-op) to 27, the true floor. Split the files that
set it — create-task, findings-review, settings, and the board
commands/store — into cohesive modules by moving nested closures to
module scope with explicit context and extracting presentational views.
Behavior is unchanged; existing tests pass.

Restore format auto-fix in the fast loop (verify:format / verify:format:fix
via oxfmt), and expand oxlint coverage to test, scripts, and docs with
scoped overrides (no-console off for CLI scripts, no-non-null-assertion
off for tests).

Use --pushback rather than --block-new-comments for the comments gate:
every .tsx file must open with the @jsxImportSource pragma the host's
Solid transform requires, and that pragma is not a recognized machine
directive, so --block-new-comments would reject every new .tsx file on
the commit that introduces it.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…rd permission queue

Read-only helpers (intake/validator) could spawn subagents, which run as fresh
sessions that don't inherit the parent's read-only auto-approval. A nested
subagent's out-of-worktree read then blocked on a permission that never bubbled
to the board, wedging the task in "reviewing…" forever.

- Disable the subagent (task) tool for intake and validator so they stay
  single-session and read-only; they retain full direct read access.
- Resolve a permission's owning board task by walking the full parent chain, so
  worker subagents at any depth surface on the board.
- Replace the single awaitingInput marker with an awaitingPermissions list;
  add/remove entries on permission.updated/replied via a read-modify-write
  metadata mutator. Read-only helper asks are kept out of the queue.
- Board: press `p` to open the waiting-permission queue (list + jump to session),
  with toasts, a `needs you` count badge, and a footer hint.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…tall

Discovery and installation are now separate and approval-gated. At launch
Kagan only checks npm's stable latest dist-tag for global npm installs and
records an available version; nothing downloads or changes config. The
kagan.update command (board `u`, palette, /kagan-update) confirms the target,
stages the exact release via api.plugins.add (host owns the compat check),
then runs the current OpenCode executable's `plugin <exact> --global --force`
with no shell. Success requires a restart to load the new version.

Removes all OpenCode private-cache coupling: wrapper path validation,
promotion, backups, markers, disposal-time promotion, interrupted-update
recovery, and manifest/engine-range classification, plus their tests. No
migration of legacy updater artifacts (early alpha).

engines.opencode drops the moving upper bound for a minimum-only floor
(>=1.17.13); a pins guard rejects reintroducing an upper bound. Bumps
@opencode-ai/plugin and @opencode-ai/sdk to 1.17.20.

Docs, README, troubleshooting, AGENTS.md, CONTRIBUTING, and the authoritative
supervision-board Requirement 18 + design updated for global-only install,
local-alpha migration, confirmation, exact staging, restart, and rollback.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@socket-security

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updated@​opencode-ai/​plugin@​1.17.18 ⏵ 1.17.20991007097100
Updated@​opencode-ai/​sdk@​1.17.18 ⏵ 1.17.2092 -11007597100
Addedoxfmt@​0.58.0871008996100

View full report

@greptile-apps

greptile-apps Bot commented Jul 16, 2026

Copy link
Copy Markdown

Greptile Summary

This PR refines task creation, helper handling, and plugin updates. The main changes are:

  • Adds bulk task creation and shared worktree setup.
  • Adds helper permission and restart controls.
  • Replaces the updater with an approval-based global install flow.
  • Splits large TUI modules into focused components and stores.

Confidence Score: 5/5

This looks safe to merge.

No blocking issues found in the changed code.

T-Rex T-Rex Logs

What T-Rex did

  • Executed the focused lifecycle harness to generate the lifecycle captures update-lifecycle-01-before.log, update-lifecycle-02-after.log, and update-lifecycle-focused-tests.log.
  • Inspected update-lifecycle-01-before.log to verify non-mutating discovery, cancelled approval, and suppression of ineligible-install.
  • Inspected update-lifecycle-02-after.log to verify the approved exact-version staging path at the identical scope.
  • Inspected update-lifecycle-focused-tests.log to validate the fresh Bun suite results.
  • Reviewed trex-artifacts/update-lifecycle-harness.ts as the executable harness that generated the captures.

View all artifacts

T-Rex Ran code and verified through T-Rex

Important Files Changed

Filename Overview
src/task/create.ts Centralizes board-task setup and cleans up worktree artifacts after downstream creation failures.
src/server/permissions.ts Validates the parent task’s recorded helper session before automatically allowing read-only helper requests.
src/tui/updates/action.ts Keeps update execution serialized through confirmation, staging, and global installation.

Reviews (3): Last reviewed commit: "fix: address PR #24 review — task-creati..." | Re-trigger Greptile

Comment thread src/server/create-tasks.ts
Comment thread src/task/create.ts Outdated
Comment thread src/tui/updates/action.ts Outdated
Comment thread src/server.ts Outdated
aorumbayev and others added 2 commits July 17, 2026 00:26
The circular-deps check passed `src/**/*.{ts,tsx}` to skott, relying on
shell glob expansion. CI's bash (no globstar) left the literal glob, so
skott failed with "Entrypoint not found". Local zsh expanded it and only
handed skott the first file as an entrypoint, so most of the graph was
never scanned.

Switch to `-w src` so skott walks all of src regardless of shell. That
surfaced a genuine cycle: task-details.tsx imported the dialog value from
task-details-view.tsx, which imported the TaskDetails type back. Move
openTaskDetailsView into the view file so the value edge is gone; the
view now only depends on task-details for the type.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- serialize bulk task creation per project so overlapping runs can't mint
  duplicate task numbers
- roll back the worktree and branch when board-task setup or session
  creation fails, leaving no orphans
- hold the update guard across confirm+install so a second update request
  can't race a concurrent global install
- verify read-only helper ownership (parent back-pointer + owning board
  task) before auto-allowing permissions, closing a forged-role bypass

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@aorumbayev

Copy link
Copy Markdown
Member Author

@greptileai

@aorumbayev
aorumbayev merged commit e38cfb1 into main Jul 16, 2026
3 checks passed
@aorumbayev
aorumbayev deleted the feat/refactor branch July 16, 2026 22:53
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