Expand description
cliban-sync — the bridge between a cliban board and an external issue
tracker.
Deliberately not a sync engine. There is no daemon, no polling, and no
merge algorithm; there are two explicit verbs a human or agent invokes on
one issue at a time — import (remote → cliban) and push (cliban → remote) —
and a links table recording which local issue corresponds to which
remote one.
What makes that tractable is declared field ownership rather than
reconciliation. The remote owns title, priority, labels, due date, and
workflow state. The ## Spec prose follows the link’s recorded
links::Origin — whoever created the pairing wrote the spec first and
owns it. cliban owns ## Plan, ## Activity Log, and ## Notes — the
parts that have no counterpart upstream and are the whole reason the board
exists. Neither side ever merges the other’s fields,
so the only conflict left is “the remote moved since we last looked”, which
is a timestamp comparison (see linear::push).
Re-exports§
Modules§
- config
~/.config/cliban/linear.toml— the optional bits of Linear setup.- error
- Error vocabulary for the sync bridges.
- linear
- The Linear bridge.
- links
remote_links— which local issue is which remote issue.
Constants§
- ENTITY_
ISSUE - Entity key stored in
remote_links.entity. Only issues are linked today; the column exists so milestones or projects can be added without a migration. - PROVIDER_
LINEAR - Provider key stored in
remote_links.provider.
Functions§
- fingerprint
- Stable hash of the remote-owned field values, stored as
remote_links.base_hash.