Commit Graph

4630 Commits

Author SHA1 Message Date
Mohamed Boudra
ad0939dfbb fix(projects): preserve conservative identity boundaries 2026-07-29 11:13:07 +00:00
Mohamed Boudra
7b9787a75d fix(projects): resolve legacy mutation aliases 2026-07-29 10:59:01 +00:00
Mohamed Boudra
7e43d90aa5 fix(projects): retain absolute scp users 2026-07-29 10:45:23 +00:00
Mohamed Boudra
1f467fa43e test(app): model persisted project keys 2026-07-29 10:36:06 +00:00
Mohamed Boudra
fef479e749 fix(projects): scope legacy paths to hosts 2026-07-29 10:20:55 +00:00
Mohamed Boudra
1ff152edcd fix(projects): retain archived reference errors 2026-07-29 10:09:43 +00:00
Mohamed Boudra
0060c88399 fix(projects): harden project reference identity 2026-07-29 09:55:37 +00:00
Mohamed Boudra
30a6122deb fix(projects): preserve project key compatibility
Resolve legacy workspace project references at the daemon boundary while keeping projectKey as the cross-host identity. Complete generic SSH normalization without collapsing distinct repositories.
2026-07-29 09:42:05 +00:00
Mohamed Boudra
5ae7ca7004 test(projects): assert host-scoped project keys 2026-07-29 09:26:18 +00:00
Mohamed Boudra
471a7431f2 fix(projects): prevent project key collisions
Preserve platform path semantics and generic remote transports in cross-host keys, and compare legacy checkout roots using filesystem equivalence before materializing ownership.
2026-07-29 09:16:01 +00:00
Mohamed Boudra
649592fe73 fix(projects): restore project key as grouping identity
Random host-local project IDs had replaced the persisted cross-host value carried by projectKey. Keep projectId for routing while reconciliation owns and persists projectKey for grouping.
2026-07-29 09:12:08 +00:00
Mohamed Boudra
39e5006882 fix(projects): harden grouping identity and routing 2026-07-29 07:40:36 +00:00
Mohamed Boudra
f054e403a6 fix(projects): preserve exact placement identity 2026-07-29 02:48:30 +00:00
Mohamed Boudra
3e66464b2e test(projects): expect framed settings route 2026-07-29 02:33:01 +00:00
Mohamed Boudra
8f2599d424 fix(projects): harden grouped project routing 2026-07-29 02:26:21 +00:00
Mohamed Boudra
1dc03e565f test(projects): use grouped identity in UI specs 2026-07-29 02:13:13 +00:00
Mohamed Boudra
8140d8508e fix(projects): separate identity from presentation 2026-07-29 01:40:55 +00:00
Mohamed Boudra
afbd527c8d fix(projects): preserve SSH URL path semantics 2026-07-29 01:20:04 +00:00
Mohamed Boudra
29d3b2f76c fix(projects): keep settings on routed host 2026-07-29 01:06:29 +00:00
Mohamed Boudra
a924d51e4c fix(projects): model SCP remote semantics 2026-07-29 00:59:35 +00:00
Mohamed Boudra
d853df73a4 fix(projects): preserve remote path semantics 2026-07-29 00:43:52 +00:00
Mohamed Boudra
a3188a7699 fix(projects): preserve host-scoped actions 2026-07-29 00:28:36 +00:00
Mohamed Boudra
f154531825 fix(projects): harden host and remote identity 2026-07-29 00:13:45 +00:00
Mohamed Boudra
e849518c76 fix(projects): normalize default remote ports 2026-07-29 00:02:16 +00:00
Mohamed Boudra
5928dc08d9 fix(projects): stabilize settings and path identity 2026-07-28 23:50:49 +00:00
Mohamed Boudra
26452a4f01 fix(projects): reconcile grouped custom names 2026-07-28 23:33:50 +00:00
Mohamed Boudra
34500f30cf fix(projects): preserve symlinked bootstrap roots 2026-07-28 23:23:39 +00:00
Mohamed Boudra
95ceb238ee fix(projects): isolate legacy host identity 2026-07-28 23:11:50 +00:00
Mohamed Boudra
6544ca7419 fix(projects): preserve selected project identity 2026-07-28 22:57:45 +00:00
Mohamed Boudra
ec08367d93 fix(projects): stabilize legacy subproject grouping 2026-07-28 22:40:04 +00:00
Mohamed Boudra
07bb8eeaa6 fix(projects): close grouped routing gaps 2026-07-28 22:30:45 +00:00
Mohamed Boudra
d3d59749b0 fix(projects): preserve selected host identity 2026-07-28 22:18:48 +00:00
Mohamed Boudra
8f89aee756 test(app): update project host shape contract 2026-07-28 22:05:24 +00:00
Mohamed Boudra
b7ee191245 fix(projects): strengthen grouping identity 2026-07-28 21:59:01 +00:00
Mohamed Boudra
b92d142fce fix(projects): preserve host-local project identity 2026-07-28 21:40:42 +00:00
Mohamed Boudra
9e86b13b1f fix(projects): keep ambiguous clones separate
A shared remote can identify a project across hosts, but it cannot distinguish two independent clones on one host. Treat those keys as ambiguous so host-local project IDs remain separate.
2026-07-28 21:21:29 +00:00
Mohamed Boudra
47e095270a fix(projects): restore cross-host grouping
Random host-local project IDs replaced the remote-derived value that had also served as grouping identity. Persist a separate opaque group key and let normal boot reconciliation backfill older records without a migration.
2026-07-28 21:19:07 +00:00
Mohamed Boudra
76e336a1be Run only relevant CI checks for each pull request (#2500)
* perf(ci): skip unaffected test jobs

Keep required checks present as skipped jobs and run the full matrix whenever change detection cannot produce a trustworthy result.

* fix(ci): harden change-based job gating

Include shared build inputs in packaged desktop smoke selection and pin the path filter action that controls job execution.

* fix(ci): run CLI checks for Nix packaging changes

The CLI supervision regression suite reads the Nix package definition directly, so include that external dependency in its path filter.

* fix(ci): track external test inputs

Select server and CLI suites when their narrowly scoped cross-package fixtures and source assertions change.

* fix(ci): track server test CLI imports

Run server tests for CLI source changes because the Hub relationship harness executes the CLI command graph directly.

* fix(ci): pin gating checkout action

Keep every third-party action that controls change detection pinned to a verified commit SHA.
2026-07-28 19:18:56 +08:00
Jason@HND
f0d7eeb98c fix(quota): restore Grok Settings usage for current CLI auth/billing (#2353)
* fix(quota): restore Grok Settings usage for current CLI auth/billing

Grok CLI no longer stores a top-level access_token or usage.creditUsage.
Read nested auth key tokens and config.used.val so Settings → Usage
shows monthly credits again. Keep legacy shapes and env tokens working.

Fixes #2352

* fix(quota): make Grok auth-file tests work on Windows

Inject homeDir into GrokQuotaProvider like Kimi so nested
~/.grok/auth.json tests do not depend on os.homedir() which
ignores $HOME on Windows (USERPROFILE).
2026-07-28 18:49:21 +08:00
Mohamed Boudra
f91a984348 fix(claude): show a single 1M-context Opus 5 model (#2497) 2026-07-28 18:18:21 +08:00
Michael Wu
cbbf6c1684 Carry local files and shared state into new worktrees (#2419)
* feat(server): support symlink worktree includes

* refactor(server): simplify worktree include handling

* fix(server): constrain worktree include traversal

* fix(server): clean up failed worktree branches

* fix(server): skip missing worktree include entries

* fix(server): make worktree includes best effort

* fix(server): skip failed worktree includes

* fix(server): harden worktree include planning

* fix(server): preserve reused worktree result shape

Materialization reports describe one creation attempt, not durable worktree identity. Carry them beside the worktree so newly created and reused results keep the same stable shape.

* fix(server): harden worktree include boundaries

Replace directory snapshots exactly, keep canonical Git metadata protected, report recovery skips, and only roll back branches owned before worktree creation.

* fix(server): follow safe include aliases

Traverse canonical in-checkout directory links during glob planning and treat coded revalidation failures as per-entry skips.

* fix(server): make include preflight race safe

Create fetched checkout refs atomically, retain overlapping copy entries for independent fallback, and protect the full managed-worktree base.

* fix(server): preserve staged recovery state

Validate completed directory snapshots, retain backups after failed restoration, and derive atomic ref guards from the repository object ID width.

* fix(server): preserve partial include progress

Keep safe glob matches, enforce recursive-directory types, validate staged roots, and retain OID guards through rollback.

---------

Co-authored-by: Mohamed Boudra <boudra.moha@gmail.com>
2026-07-28 03:18:40 +02:00
Kamil
89c2fac3c6 Open project and workspace folders from the sidebar (#2491)
* feat(app): open project folder from project context menu (#2487)

* refactor(app): give file manager action a home

---------

Co-authored-by: Mohamed Boudra <boudra.moha@gmail.com>
2026-07-28 00:48:29 +02:00
Saravjeet 'Aman' Singh
f8dd0fc2e0 Switch projects from New Workspace with ⌘P/Ctrl+P (#2110)
* feat(app): add ⌘P shortcut to switch project on New Workspace screen

Opens the existing project picker with its search focused so the project
can be switched from the keyboard (type + Enter) instead of clicking the
badge and then the project.

Wires a new "workspace.project.pick" action through the standard keyboard
pipeline (binding -> route passthrough -> dispatcher), handled by a
screen-scoped handler on the New Workspace screen that is only registered
while the screen is mounted and there are projects to pick. Because
preventDefault only fires when a handler handles the key, ⌘P/Ctrl+P still
triggers native print everywhere else. Adds a Settings -> Shortcuts help
row (rebindable) and the "Switch project" label across all locales.

* test(app): cover project picker shortcut

---------

Co-authored-by: Mohamed Boudra <boudra.moha@gmail.com>
2026-07-28 00:32:41 +02:00
Dmitry Sinev
b55acfc60f fix(omp): accept nullable model context windows (#2406) 2026-07-28 00:28:30 +02:00
黄黄汪
a6fdcb469c docs: list paseo-skins as a community project (#2343) 2026-07-28 00:08:25 +02:00
Derek Perez
5bd317205c fix(omp): expose injected Paseo tools directly (#2418) 2026-07-27 23:44:25 +02:00
Matt Cowger
e59c94812b perf(build): parallelize server dependencies (#2434) 2026-07-28 04:12:39 +08:00
维她命@
1c8fabd293 fix(server): discover Codex project skills from cwd (#2423) 2026-07-27 22:12:22 +02:00
Matt Cowger
717f195f0c fix(app): render HTML in PR comments (#2432) 2026-07-28 04:01:43 +08:00
Li Mu Zhi
869edcbf11 fix(forge): preserve non-default port in forge web URLs (#2478)
"Open in browser" links for a self-hosted forge served on a non-standard
port (e.g. Forgejo/Gitea on :60443) dropped the port, producing
https://host/owner/repo/... instead of https://host:60443/owner/repo/...,
which 404s or hits the wrong service.

parseGitRemoteLocation discarded parsed.port (GitRemoteLocation had no
port field), and buildForgeBranchTreeUrl / buildForgeBlobUrl rebuilt the
origin from the portless host. Preserve the port on GitRemoteLocation and
reattach it in the web-URL builders, only for self-hosted http(s) origins
(an SSH port isn't the web port; a canonicalized cloud host uses the
default port). Host-identity matching (forge detection, cloud-host checks)
stays port-agnostic.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-28 04:00:46 +08:00