Skip to content

Latest commit

 

History

History
44 lines (34 loc) · 2.02 KB

File metadata and controls

44 lines (34 loc) · 2.02 KB

Session Handoff

Date: 2026-08-20 Branch: refactor/sync-domain-pipeline (PR #127) Active Feature: feat-026 / issue #105 — sync architecture refactor

Completed This Session

Investigated the failed real-provider CI after the unified planner commit. The move paths passed; GitHub exhausted two attempts on a 503 and UND_ERR_SOCKET, while GitLab exhausted two attempts on provider deadline errors. The tests then surfaced secondary count/existence assertions that hid those original request failures.

Hardened CI with three provider attempts, explicit push-result diagnostics in SyncManager E2E, and workflow contract coverage. When the shared push/PR concurrency group cancels a duplicate matrix, its aggregate gate now reports the replacement neutrally and emits run-ci=false, so it does not leave an additional aggregate red check or run downstream CI twice. Real failures remain blocking. Updated the real-provider E2E documentation to match.

Committed as 948df28 (fix(ci): harden provider e2e failures) and pushed to origin/refactor/sync-domain-pipeline. The pre-existing untracked .codex-gitlab.env remains untouched.

Verification Evidence

npx eslint .      -> PASS, 0 errors
npm run build     -> PASS, incl. Obsidian 1.11 compatibility
npx vitest run    -> PASS, 56 files / 613 tests
npm run test:e2e -- --provider gitea -> PASS, 2 files / 14 tests; container removed
actionlint v1.7.12 .github/workflows/ci.yml -> PASS, 0 errors
git diff --check  -> PASS
real CI run 32338116598 -> PASS after failed-only rerun of a disabled Gitea leg assigned to an offline runner
GitHub/GitLab sandbox branch query -> PASS, no e2e/pr/127 or source-branch refs remain

The AGENTS-required Haiku verifier was unavailable in this environment, so verification ran locally in this session.

Exact Next Step

Complete the remaining Obsidian desktop/mobile move smoke tests. Verify moving and editing a tracked file appears under Moves and applies as one remote move, while an occupied remote destination remains a skipped conflict.