Skip to content

[Bug]: When updating the app the installer writes to various files which create a cross-machine sync conflict #608

Description

@gavinbrooks

Preflight

  • I searched existing issues and this isn't a duplicate
  • I'm on the latest version (or I've noted my version below)

What happened?

I hope this bug is helpful - I am enjoying using the app but every time I update the the app I get a git sync issue between my 2 machines. Trivial to fix, but a bit annoying (especially since I am often not physically at the one machine). This is caused because the updater regenerates the installer-managed SKILL.md files and bumps the metadata.version field (I was on 0.28.2 and updated to 0.29.1). Because these files are tracked in git and synced across machines, updating the app on each machine independently rewrites the same line locally. This leaves an uncommitted working-tree change on whichever machine I update second, which blocks the sync with:

Sync paused — your local changes to .claude/skills/open-knowledge/SKILL.md, .codex/skills/open-knowledge/SKILL.md, .cursor/skills/open-knowledge/SKILL.md, +1 more conflict with incoming changes. Commit, stash, or discard them before syncing.

However, in my last case, both machines wrote the identical new version (0.29.1), so there is no real content difference, the only diff is a line the installer itself churns. (Note: I have not tried, but I think that this will also result in a version number that is incorrect in a machine that has not yet been updated.)

Some suggestions:
Keep the installer-managed version out of the tracked file. Store the skill version outside SKILL.md in a local, gitignored manifest so app updates don't rewrite a synced file. This preserves syncing of genuine user edits to the skill body while removing the churn. It will also make it so that the version number is correct across machines (as I above, I haven't tested, but I think if I update my laptop to a 0.29.1 that would make the skill version incorrect on my desktop until I update there).
Normalise the version line on merge. Ship a .gitattributes merge strategy (or have the app manage one) so the version field auto-resolves instead of conflicting.

Steps to reproduce

  1. Have OK running on 2 machines.
  2. Update on the one machine: The installer rewrites the SKILL.md files and bumps metadata.version. This gets committed/synced from machine 1.
  3. Update on the 2nd machine The installer rewrites the same four files locally (same new version), producing an uncommitted working-tree change on this machine.
  4. Machine B now has local edits that collide with A's incoming commit, which causes the sync to pause and an error to display.

Platform

macOS (Apple Silicon)

How did you install OpenKnowledge?

Desktop app (DMG)

Version

0.28.2 → 0.29.1

Logs, errors, or screenshots

Sync paused — your local changes to .claude/skills/open-knowledge/SKILL.md, .codex/skills/open-knowledge/SKILL.md, .cursor/skills/open-knowledge/SKILL.md, +1 more conflict with incoming changes. Commit, stash, or discard them before syncing.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions