Skip to content

[Feature]: Configurable Git auto-sync cadence (e.g. commit and push every 30 minutes) #971

Description

@Autumn0716

What problem are you trying to solve?

OpenKnowledge's background Git/GitHub synchronization currently uses fixed internal timing (the sync engine defaults to a 30-second pull cycle and a 60-second push cycle), while local commits are also created on an internal debounce.

Users cannot choose how frequently local changes are grouped into commits and pushed. For personal knowledge bases or repositories connected to CI, webhooks, or deployment workflows, frequent commits and pushes can create noisy history and trigger downstream automation more often than desired.

A common preference would be to batch changes and perform one commit and push every 30 minutes, while other users may want a shorter or longer interval.

Proposed solution

Expose a configurable Git auto-sync cadence in the desktop settings and/or project configuration.

For example:

  • Allow enabling or disabling scheduled auto-sync.
  • Provide common presets such as 5, 15, 30, and 60 minutes, plus a custom interval.
  • When the interval elapses, create a sync commit and push only if there are pending changes.
  • Do nothing when the working tree has no relevant changes.
  • Prevent overlapping sync jobs and retain the existing conflict handling, retry/backoff behavior, and manual sync action.
  • Persist the selected interval per workspace or knowledge base.

A unified "commit and push every N minutes" setting would satisfy the main use case. Separate pull and push intervals could also work if that fits the existing sync engine better.

Area

GitHub sync

Alternatives considered

  • Manually triggering sync.
  • Configuring an external cron job or macOS launchd task.
  • Using a separate automatic Git utility.

These alternatives are less discoverable, are not cross-platform, and may race with OpenKnowledge's built-in sync engine.

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions