feat(sync): add automatic sync and refine mobile Source Control density - #156
Open
ClaudiaFang wants to merge 10 commits into
Open
ClaudiaFang wants to merge 10 commits into
ClaudiaFang wants to merge 10 commits into
Conversation
…and Tree Queue rows already set the compact mobile row baseline; List and Tree file rows, plus tree folder rows, now read the same shared --scv-mobile-row-* custom properties instead of drifting independently. List mode's folder-path suffix now yields horizontal space before the filename (disproportionate flex-shrink) so long paths ellipsis first and the row never wraps to a second line. Also normalizes the Queue→Repository vertical gap and both sections' header→first-row padding to the same values. CSS-only; no changes to SourceControlViewModel, selection semantics, sync behavior, tree shaping, scroll persistence, or Queue/Repository responsibilities.
8 tasks
feat(sync): add automatic scheduled sync
…drop idle refresh - SyncIntentExecutor returns SyncExecutionOutcome so background runs expose planning/commit/pull rejections and provider errors to AutomaticSyncService.onError - runBackground holds the shared SyncExecutionGuard across refresh -> execute -> refresh; a busy tick does no refresh, planning, or mutation and is not queued - skip the second refresh when there is nothing actionable - update architecture/progress docs; PR #156 is a combined PR Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…red execution guard Ribbon/command/context-menu push and pull and Push/Pull All called SyncManager directly, bypassing SyncExecutionGuard, so they could overlap Automatic Sync. Add SourceControlActionService.runManual (same single guard, non-reentrant) and route those entry points through it; Push/Pull All re-read the remote tree inside the guard. Also make e2e cleanup tolerate an unset E2E_TEST_BRANCH. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…sisted cmd_cleanup called load_env_file (-> normalize_env -> GitLab curl) before checking for a recorded branch, so a provisioning network failure could be repeated and masked by cleanup. Return early when e2e.env is absent and no branch is inherited. Refresh stale progress.md / feature_list.json status. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Tracks firstsun-dev/.github#29 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…-migration chore(ci): migrate actions to Node 24 runtime
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Summary
Scope: intentionally combined PR
This PR intentionally contains two features and should not be split again:
Automatic Sync follows:
Automatic Sync safety / review fixes
SyncIntentExecutorreturnsSyncExecutionOutcome; planning/commit/pull rejections and provider per-file errors reach the diagnostic logger without showing background Notices.SyncExecutionGuardis held across automatic refresh → execute → refresh. Busy means 0 refreshes, 0 planning, 0 mutations, and no queued automatic backlog.SourceControlActionService.runManual(). No second lock was introduced.E2E_TEST_BRANCHand a missing clone. Cleanup also returns immediately, with zero network access, when noe2e.envwas persisted (provisioning failed before writing run state), so it can no longer repeat or mask the original GitLab provisioning failure.Verification
Latest reviewed head:
243196ca44c4bae390367ec56848846d1ffbb160GitHub Actions run:
3557318980882unit/integration test files /1035tests passedmain(behind 0 at review)styles.csslayoutMobile visual checklist
Before release, manually spot-check:
Release note
semantic-releaseowns the 1.7.0 version bump. Do not hand-editmanifest.json,package.json,versions.json, or generatedCHANGELOG.md.🤖 Generated with Claude Code