Skip to content

clone repo and small fixes#255

Merged
plusplusoneplusplus merged 10 commits into
mainfrom
pr/clone-repo-and-small-fixes
Jun 1, 2026
Merged

clone repo and small fixes#255
plusplusoneplusplus merged 10 commits into
mainfrom
pr/clone-repo-and-small-fixes

Conversation

@plusplusoneplusplus
Copy link
Copy Markdown
Owner

No description provided.

plusplusoneplusplus and others added 8 commits June 1, 2026 02:21
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Change DEFAULT_CONFIG.chat.askUser.enabled from false to true so the
AI can pause and ask the user a question mid-task without requiring
manual opt-in.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ive Claude sessions

Claude Code's 'default' permission mode blocks write/create operations to
additional allowed directories (like ~/.coc) in ask/interactive mode,
causing mkdir calls to fail with a permission error.

Switch the fallback permissionMode from undefined (which maps to 'default')
to 'acceptEdits', which auto-approves file edits and directory creation
within allowed working directories without requiring bypassPermissions.

Permission mode mapping:
- autopilot → bypassPermissions (unchanged)
- plan      → plan (unchanged)
- all others → acceptEdits (was: undefined/'default')

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add the CloneRepoDialog to the RepoTabStrip's '+' dropdown so the
'Clone repository' option is available from the top tab bar, matching
parity with the sidebar ReposGrid menu.

- Import CloneRepoDialog into RepoTabStrip
- Add cloneOpen state
- Add 'repo-tab-clone-repo-option' menu item opening CloneRepoDialog
- Mount CloneRepoDialog alongside the other add/folder dialogs
- Add mock + 2 new tests covering the clone option in RepoTabStrip.test.tsx

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ayloads

For commit and branch-range types, extractPayloadFields was omitting the
prId and headSha fields. ClassificationExecutor.resolveClassificationContext
reads those fields directly from PrClassificationPayload, and its tool-
injection guard requires both to be truthy:

  if (this.dataDir && wsId && ctx.repoId && ctx.prId && ctx.headSha) {
      tools.push(saveClassificationTool);
  }

With prId/headSha absent, the guard was never entered, saveClassification was
never injected, and the AI had no tool to persist results — leaving the
classification store empty and every poll returning status: 'none'.

Fix: populate prId and headSha using the same two-part key scheme as
splitIdentifier (prId='_commit'/'_branch-range', headSha=identifier) so
the executor, store writes, and store reads all refer to the same file key.

Regression tests added in generic-classification-handler.test.ts.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
plusplusoneplusplus and others added 2 commits June 1, 2026 06:02
Add a green ✓ badge on commit rows that have a stored classification
result, so users can see at a glance which commits have been classified
without opening each one individually.

Changes:
- Server: new GET /api/repos/:repoId/classify-diff/batch-status endpoint
  reads classification store for up to 200 identifiers in one round-trip,
  returning { statuses: { [id]: 'none'|'ready'|'running' } }.  Registered
  before the single-item GET route so the more specific path wins.

- Client hook: useCommitClassificationStatus(workspaceId, repoId, hashes[])
  issues a single batch-status request for all visible commit hashes,
  returns { classifiedHashes: ReadonlySet<string>, refresh() }.

- CommitList: new optional classifiedHashes prop; renders a 15×15 px
  green rounded-full ✓ badge (data-testid commit-classified-flag-{shortHash})
  in the existing right-column badge strip.

- CommitDetail: new onClassified callback, fired via useEffect when the
  classification state transitions to 'ready'.

- RepoGitTab: wires useCommitClassificationStatus to CommitList and
  passes refreshClassificationStatus as onClassified to CommitDetail so
  the badge updates immediately after the user classifies a commit.

Tests: 10 new tests in generic-classification-handler.test.ts covering
ready/running/none/multi/empty/validation/over-limit and non-interference
with the single-item GET endpoint.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…latform clone path

CI failures on PR #255 stemmed from intentional behavior changes:
- servers.enabled / pullRequests.enabled now default to true, so config,
  admin-handler, admin sidebar, and mobile bottom-nav (4 -> 5 tabs) tests
  were updated to expect the Servers entry.
- generic-classification-handler now registers a batch-status GET route at
  index 1, shifting the single-item poll GET to routes[2]; test indices and
  the route-count assertion were updated.
- api-git-clone-routes test now resolves the expected parent dir with
  path.resolve so it passes on Windows (drive-letter prefix).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@plusplusoneplusplus plusplusoneplusplus merged commit 27584be into main Jun 1, 2026
34 checks passed
@plusplusoneplusplus plusplusoneplusplus deleted the pr/clone-repo-and-small-fixes branch June 1, 2026 06:49
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