Skip to content

feat(memory-sync): frictions syncPaths entry in all machine profiles#69

Merged
LanNguyenSi merged 2 commits into
masterfrom
feat/frictions-syncpath
Jul 27, 2026
Merged

feat(memory-sync): frictions syncPaths entry in all machine profiles#69
LanNguyenSi merged 2 commits into
masterfrom
feat/frictions-syncpath

Conversation

@LanNguyenSi

Copy link
Copy Markdown
Owner

Transport half of the friction-log sync strategy (operator decision
2026-07-27, option 2: per-machine file exports over the existing
channel, no SQLite sync).

What changed

  • Third syncPaths entry in all machine profiles (source
    ~/.harness/frictions, destination frictions, directory, not
    required), following the machine-state pattern from feat(agent-memory-sync): carry machine-state toolchain snapshots over the sync channel #64. In
    linux.example.json it lands as the second entry, since that template
    never had a machine-state entry (noted in docs).
  • docs/machine-setup.md: new section f) with the payload convention
    (one file per machine, <profile>.json, owner-writes-only, no
    secrets), the concrete producer convention (friction-log
    sync_export.path; the tool writes the configured path verbatim and
    derives no filename, so the convention is what carries
    owner-writes-only), watch caveats, an exposure note for free-text
    friction records, and two stale-claim fixes elsewhere in the doc.
  • Tests: new frictions-syncpath integration test (missing-source
    tolerance, push/pull round-trip incl. mkdir-on-pull), and the
    committed profiles are now pinned directly in the parity test
    (frictions entry on all three profiles, machine-state entry on
    macbook/mac-mini) after review flagged the integration test alone as
    inert against a profile revert. The pin was proven load-bearing by a
    temporary entry-strip that failed exactly this assertion.

Review

Independent reviewer subagent: no high or critical findings; one MEDIUM
(inert test) fixed as above, four doc LOWs fixed, three LOWs
consciously deferred (test-file duplication; pre-existing
cross-machine-profiles hermeticity, tracked with 112a0864;
linux.example machine-state asymmetry, follow-up). Suite baseline
unchanged: 109 tests, 108 pass, the single failure is the known
pre-existing EACCES E2E (112a0864). Typecheck and build clean;
preflight ready:true on 0670116.

Producer side ships separately in agent-dx
(feat/friction-log-sync-export); this entry tolerates a missing source,
so the two PRs are independently mergeable.

Refs: agent-tasks task 343d5a8f-b01b-400d-ba0e-c69191e1220a

LanNguyenSi and others added 2 commits July 27, 2026 13:51
Third syncPaths entry per profile (source ~/.harness/frictions,
destination frictions, directory, not required), following the
machine-state pattern from #64. New machine-setup.md section f)
documents the one-file-per-machine payload convention and names the
producer (friction-log sync-export, config-gated, agent-dx); the stale
'(upcoming)' wording for the shipped toolchain-parity companion is
fixed. New integration test pins missing-source tolerance and the
push/pull round-trip incl. mkdir-on-pull.

Note: linux.example.json carries the frictions entry as its second
syncPaths entry, since that template never had a machine-state entry.

Refs: agent-tasks task 343d5a8f-b01b-400d-ba0e-c69191e1220a

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FFEBioagwFtGfZVmAvECPu
…entries; docs precision

Review round: the integration test alone was inert against a revert of
the profile entries, so the settingsByFile parity test now reads the
committed profiles directly and pins the frictions entry on all three
(destination, kind, absolute source suffix, not required) and the
machine-state entry on macbook/mac-mini; proven load-bearing by a
temporary entry-strip that failed exactly this assertion. Five doc
fixes in machine-setup.md: stale single-entry claim, restore-recipe
destination note, watch caveats in f), concrete producer convention
(sync_export.path, no derived filename, write-through from all six
mutating commands), and the free-text exposure note.

Refs: agent-tasks task 343d5a8f-b01b-400d-ba0e-c69191e1220a

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FFEBioagwFtGfZVmAvECPu
@LanNguyenSi
LanNguyenSi merged commit 828da10 into master Jul 27, 2026
3 of 6 checks passed
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