Skip to content

fix(test): guard removed sync status presentation imports - #149

Merged
ClaudiaFang merged 4 commits into
claude/fix-mobile-diff-rendering-and-responsive-layoutfrom
claude/fix-source-control-legacy-cleanup
Sep 1, 2026
Merged

ClaudiaFang merged 4 commits into
claude/fix-mobile-diff-rendering-and-responsive-layoutfrom
claude/fix-source-control-legacy-cleanup

Conversation

@ClaudiaFang

@ClaudiaFang ClaudiaFang commented Sep 1, 2026 •

Copy link
Copy Markdown
Member

Description

Type of Change

  • feat: New feature
  • fix: Bug fix
  • perf: Performance improvement
  • docs: Documentation update (Diátaxis compliant)
  • refactor: Code refactoring
  • ci/cd: Automation or pipeline change
  • skill: AI Agent skill update

Engineering Standards

  • Conventional Commits followed
  • Documentation updated (if applicable)
  • Local tests passed
  • AI Agent skills validated (if applicable)

Related Issues

CLAUDE.md still described src/ui/SyncStatusView.ts as the plugin's main UI
and never mentioned the Source Control surface that replaced it, so an
agent reading it cold would look for a file that no longer exists and miss
the real call chain (SourceControlItemView -> SourceControlView ->
SourceControlActionService -> SyncWorkspace -> SyncManager/executors).
Also documents the two compatibility identifiers (SOURCE_CONTROL_VIEW_TYPE
= 'sync-status-view', the open-sync-status command id) as intentional, not
leftover legacy code to clean up.
The remote-delete E2E called service.deleteFile() directly, with a
comment saying it reproduced src/ui/SyncStatusView.ts's real call path --
but that view was removed. The production path is now
SourceControlActionService.deleteRemote() -> SyncWorkspace.deleteRemote()
-> RemoteDeleteExecutor -> gitService.deleteFile(), which also clears
tracked metadata and the live status row as part of the same call, not as
a separate manual step the way this test's old manager.clearMetadata()
call implied. Rebuilds the test on a real SyncManagerWorkspace +
SourceControlActionService, verified against a live Gitea sandbox
(npm run test:e2e -- --provider gitea: 36 passed, 18 skipped).
docs/source-control-refactor/{roadmap,phase-1..4}.md describe an
in-progress migration (roadmap.md dated 2026-08-22, still narrating
uncommitted WIP) that has since landed on main in full -- nothing in that
directory reflects the current implementation, but nothing marked it as
historical either. Adds a banner to each pointing at the new
docs/source-control.md, which describes only the current architecture and
call chain without duplicating the old roadmap's narrative.
Two regression guards so a future refactor can't silently undo this
cleanup: eslint.config.mts's no-restricted-imports rule blocking
ui/sync-status and SyncStatusView imports is now asserted directly (it
existed before this PR but had no test locking it in), and the remote
delete E2E is now locked to keep going through
SourceControlActionService/SyncWorkspace rather than quietly reverting to
a direct service.deleteFile() provider bypass.
@ClaudiaFang
ClaudiaFang merged commit beba48d into claude/fix-mobile-diff-rendering-and-responsive-layout Sep 1, 2026
24 of 35 checks passed
@sonarqubecloud

sonarqubecloud Bot commented Sep 1, 2026

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
13.6% Duplication on New Code (required ≤ 3%)

See analysis details on SonarQube Cloud

@ClaudiaFang
ClaudiaFang deleted the claude/fix-source-control-legacy-cleanup branch September 1, 2026 01:57
@ClaudiaFang

Copy link
Copy Markdown
Member Author

🎉 This PR is included in version 1.6.1 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant