@snarkipus/opencode-beads 0.9.1 → 0.9.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +41 -78
- package/package.json +3 -3
- package/src/opencode-runtime.ts +156 -0
- package/src/plugin-core.ts +92 -35
- package/src/plugin-hooks.ts +56 -0
- package/src/plugin.ts +5 -143
- package/src/prime.ts +71 -7
- package/vendor/commands/audit.md +1 -2
- package/vendor/commands/blocked.md +1 -1
- package/vendor/commands/close.md +1 -1
- package/vendor/commands/comments.md +1 -1
- package/vendor/commands/compact.md +1 -1
- package/vendor/commands/create.md +1 -1
- package/vendor/commands/decision.md +2 -2
- package/vendor/commands/delete.md +1 -1
- package/vendor/commands/dep.md +1 -1
- package/vendor/commands/epic.md +4 -1
- package/vendor/commands/export.md +2 -2
- package/vendor/commands/import.md +75 -9
- package/vendor/commands/init.md +1 -1
- package/vendor/commands/label.md +1 -1
- package/vendor/commands/list.md +1 -1
- package/vendor/commands/quickstart.md +2 -2
- package/vendor/commands/rename-prefix.md +1 -2
- package/vendor/commands/reopen.md +1 -1
- package/vendor/commands/restore.md +1 -1
- package/vendor/commands/search.md +1 -1
- package/vendor/commands/show.md +1 -1
- package/vendor/commands/sync.md +101 -9
- package/vendor/commands/update.md +1 -1
- package/vendor/manifest.json +47 -47
package/vendor/commands/sync.md
CHANGED
|
@@ -1,17 +1,109 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Synchronize issues
|
|
3
|
-
argument-hint:
|
|
2
|
+
description: Synchronize issues with a configured Dolt remote
|
|
3
|
+
argument-hint: ""
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
`bd sync`
|
|
6
|
+
`bd sync` runs one full synchronization cycle against the configured Dolt
|
|
7
|
+
remote: pull, check for merge conflicts, recompute the denormalized
|
|
8
|
+
`is_blocked` flag, then push — retrying a bounded number of times when another
|
|
9
|
+
replica wins the push race. It is the loop a multi-machine deployment otherwise
|
|
10
|
+
hand-rolls in shell, and it is the verb to reach for on a sync timer.
|
|
7
11
|
|
|
8
|
-
|
|
12
|
+
(This is not the old JSONL-era `bd sync`, which was removed in v0.51. Nested
|
|
13
|
+
commands such as `bd backup sync` and the tracker-specific sync commands are
|
|
14
|
+
separate commands and are unaffected.)
|
|
9
15
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
16
|
+
```bash
|
|
17
|
+
bd sync # sync with the default remote
|
|
18
|
+
bd sync --remote mini # sync with a specific named remote
|
|
19
|
+
bd sync --attempts 5 # allow more push-race retries (default 3)
|
|
20
|
+
bd sync --json # machine-parseable outcome
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Exit codes are the machine contract, so a timer can branch on them without
|
|
24
|
+
parsing output:
|
|
25
|
+
|
|
26
|
+
| Code | Meaning |
|
|
27
|
+
|------|---------|
|
|
28
|
+
| `0` | Synced, or nothing to do |
|
|
29
|
+
| `1` | Error (transport, auth, storage) |
|
|
30
|
+
| `2` | Merge conflict — halted, nothing pushed; resolve it by hand |
|
|
31
|
+
| `3` | Push-race retries exhausted — transient, retry on the next tick |
|
|
32
|
+
|
|
33
|
+
Two properties are the point of the verb. Conflicts are detected **positively**,
|
|
34
|
+
from the merge's own conflict rows and from Dolt's conflict tables — never
|
|
35
|
+
inferred from the pull's exit status, which is untrustworthy in both directions.
|
|
36
|
+
And a conflict sync cannot settle is **never** resolved by picking a side: it
|
|
37
|
+
halts before recomputing or pushing, and keeps halting the same way until an
|
|
38
|
+
operator resolves the divergence. (The pull underneath still auto-settles the
|
|
39
|
+
convergent conflict classes it always has — machine-local metadata rows,
|
|
40
|
+
audit-only dependency rows, last-write-wins on issue cells. Anything past those
|
|
41
|
+
halts here.)
|
|
42
|
+
|
|
43
|
+
The halt message says which state the halt left behind, because it depends on
|
|
44
|
+
the pull route and both are real: the SQL route aborts the conflicted merge and
|
|
45
|
+
restores the working set, while the CLI/git-protocol route leaves the conflict
|
|
46
|
+
rows **live** for you. A conflict that was already live when sync started — from
|
|
47
|
+
an earlier halted sync or a hand-run merge — halts before the pull instead, and
|
|
48
|
+
says that too.
|
|
49
|
+
|
|
50
|
+
The recompute between pull and push is not bookkeeping either — `is_blocked` is
|
|
51
|
+
denormalized, so a dependency edge merged in from another replica leaves
|
|
52
|
+
`bd ready` stale until it runs. It runs on every attempt, unconditionally:
|
|
53
|
+
`bd recompute-blocked`'s full pass is specifically the repair that does *not*
|
|
54
|
+
depend on a merge advancing HEAD, so it is what recovers a column left stale by
|
|
55
|
+
a conflicted pull you resolved by hand — a state sync itself creates by exiting
|
|
56
|
+
2. Gating it on "did this tick merge anything" would mean that repair never runs
|
|
57
|
+
again while every tick reports success.
|
|
58
|
+
|
|
59
|
+
This is not `bd federation sync`, which syncs with named peer towns and takes a
|
|
60
|
+
`--strategy ours|theirs` to resolve whatever conflicts it meets. `bd sync`
|
|
61
|
+
targets the configured remote and has no such switch.
|
|
62
|
+
|
|
63
|
+
`--json` reports `{"status", "attempts", "conflicts", "conflicts_live",
|
|
64
|
+
"rows_corrected", "pushed"}` on every non-error exit; exit 1 emits bd's standard
|
|
65
|
+
`{"error": ...}` envelope instead, so a timer reading `.status` must treat
|
|
66
|
+
`null` as the error case (or just branch on the exit code, which is the point).
|
|
67
|
+
A rig with no remote configured exits 0 with setup guidance; `dolt.local-only`
|
|
68
|
+
and the `no-push` config flag are honored.
|
|
69
|
+
|
|
70
|
+
## The equivalent by hand
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
# Before starting work or consuming changes from another clone
|
|
74
|
+
bd dolt pull
|
|
75
|
+
|
|
76
|
+
# After local issue updates and before handoff: commit, integrate, then publish
|
|
77
|
+
bd dolt commit
|
|
78
|
+
bd dolt pull
|
|
79
|
+
bd dolt push
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
`bd dolt commit` creates an explicit commit boundary when auto-commit is off or
|
|
83
|
+
in batch mode; it is a safe no-op when there is nothing pending. The following
|
|
84
|
+
pull integrates remote changes before the final push. The pull steps require a
|
|
85
|
+
configured remote; use the one-time setup below first when needed.
|
|
86
|
+
|
|
87
|
+
Inspect the configured Dolt remotes with:
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
bd dolt remote list
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
If no Dolt remote exists, the project has a Git origin, and remote sync is
|
|
94
|
+
enabled, `bd dolt push` automatically adopts that origin; do not add the
|
|
95
|
+
matching URL manually. To use a distinct custom Dolt remote, first confirm that
|
|
96
|
+
the chosen name is absent, then add it explicitly:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
bd dolt remote add origin <distinct-dolt-remote-url>
|
|
100
|
+
```
|
|
14
101
|
|
|
15
102
|
## Note
|
|
16
103
|
|
|
17
|
-
|
|
104
|
+
When enabled, `dolt.auto-commit` records successful writes in local Dolt
|
|
105
|
+
history; it does not push them to a remote. Remote auto-push is a separate,
|
|
106
|
+
opt-in setting and is disabled by default. Auto-push publishes committed HEAD
|
|
107
|
+
only; it does not commit pending working-set writes when auto-commit is off or
|
|
108
|
+
in batch mode. Keep an explicit commit boundary before handoff unless the
|
|
109
|
+
project has a coordinated policy that provides one.
|
package/vendor/manifest.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"repository": "https://github.com/gastownhall/beads.git",
|
|
4
|
-
"tag": "v1.1
|
|
5
|
-
"commit": "
|
|
4
|
+
"tag": "v1.2.1",
|
|
5
|
+
"commit": "634cbbc4bc580fa5124f63fdf65d137a46d5b4ff",
|
|
6
6
|
"sources": [
|
|
7
7
|
{
|
|
8
8
|
"source": "plugins/beads/agents/task-agent.md",
|
|
@@ -21,78 +21,78 @@
|
|
|
21
21
|
},
|
|
22
22
|
{
|
|
23
23
|
"path": "commands/audit.md",
|
|
24
|
-
"bytes":
|
|
25
|
-
"sha256": "
|
|
24
|
+
"bytes": 956,
|
|
25
|
+
"sha256": "bf941ae72f3dfad0e5a0997c8afa1647d6ce17934692efa30e9fe4da98e39de8"
|
|
26
26
|
},
|
|
27
27
|
{
|
|
28
28
|
"path": "commands/blocked.md",
|
|
29
29
|
"bytes": 561,
|
|
30
|
-
"sha256": "
|
|
30
|
+
"sha256": "30181c3645b5e233005facde694a3bb001c5935258745ae976abfe7b93eec346"
|
|
31
31
|
},
|
|
32
32
|
{
|
|
33
33
|
"path": "commands/close.md",
|
|
34
|
-
"bytes":
|
|
35
|
-
"sha256": "
|
|
34
|
+
"bytes": 585,
|
|
35
|
+
"sha256": "ef43e31c9f86082a6192ca131c175c55ee37dc115f4781413be11f1e85274b58"
|
|
36
36
|
},
|
|
37
37
|
{
|
|
38
38
|
"path": "commands/comments.md",
|
|
39
|
-
"bytes":
|
|
40
|
-
"sha256": "
|
|
39
|
+
"bytes": 967,
|
|
40
|
+
"sha256": "cad54141ee590be3b8d07878bb3ea34c252466bbb00a9b95d7d521303a8e3b83"
|
|
41
41
|
},
|
|
42
42
|
{
|
|
43
43
|
"path": "commands/compact.md",
|
|
44
|
-
"bytes":
|
|
45
|
-
"sha256": "
|
|
44
|
+
"bytes": 1083,
|
|
45
|
+
"sha256": "5204417505320501e2c5a529da6c670826ef5b62feab708a33b7452dfd6a80c4"
|
|
46
46
|
},
|
|
47
47
|
{
|
|
48
48
|
"path": "commands/create.md",
|
|
49
|
-
"bytes":
|
|
50
|
-
"sha256": "
|
|
49
|
+
"bytes": 651,
|
|
50
|
+
"sha256": "1e27f3ff4f3ae041f6896b5181f0b0399ff80d52cd415dfd8cf6584a218736d3"
|
|
51
51
|
},
|
|
52
52
|
{
|
|
53
53
|
"path": "commands/decision.md",
|
|
54
|
-
"bytes":
|
|
55
|
-
"sha256": "
|
|
54
|
+
"bytes": 2670,
|
|
55
|
+
"sha256": "78c0de4a0979502cb553c2ad49df32cc1e6a7cb3eec25dc41f60290ad4fbbe36"
|
|
56
56
|
},
|
|
57
57
|
{
|
|
58
58
|
"path": "commands/delete.md",
|
|
59
|
-
"bytes":
|
|
60
|
-
"sha256": "
|
|
59
|
+
"bytes": 961,
|
|
60
|
+
"sha256": "a6a5e943cccc75c27820548ec4a810894be646604b98821822968c7cb55552eb"
|
|
61
61
|
},
|
|
62
62
|
{
|
|
63
63
|
"path": "commands/dep.md",
|
|
64
|
-
"bytes":
|
|
65
|
-
"sha256": "
|
|
64
|
+
"bytes": 3410,
|
|
65
|
+
"sha256": "2d50ea5c65e0ce27bc076e77de5ea32de7086b34c6f49736e71517548cfe4b76"
|
|
66
66
|
},
|
|
67
67
|
{
|
|
68
68
|
"path": "commands/epic.md",
|
|
69
|
-
"bytes":
|
|
70
|
-
"sha256": "
|
|
69
|
+
"bytes": 1027,
|
|
70
|
+
"sha256": "174f54e3092e5a4b2f4c010e95418b13f1d910e185349ba0e131b04cf5783b8b"
|
|
71
71
|
},
|
|
72
72
|
{
|
|
73
73
|
"path": "commands/export.md",
|
|
74
|
-
"bytes":
|
|
75
|
-
"sha256": "
|
|
74
|
+
"bytes": 800,
|
|
75
|
+
"sha256": "5c8e9c9b4df71c804f489fa5785d607be971b7f62c836ad531f11e8b105ee47a"
|
|
76
76
|
},
|
|
77
77
|
{
|
|
78
78
|
"path": "commands/import.md",
|
|
79
|
-
"bytes":
|
|
80
|
-
"sha256": "
|
|
79
|
+
"bytes": 4433,
|
|
80
|
+
"sha256": "604e48e6d093d9a93f28a3a5ed7dd7946b10e7a4897bec8a88eefc5b6c9c776e"
|
|
81
81
|
},
|
|
82
82
|
{
|
|
83
83
|
"path": "commands/init.md",
|
|
84
|
-
"bytes":
|
|
85
|
-
"sha256": "
|
|
84
|
+
"bytes": 753,
|
|
85
|
+
"sha256": "975759ee3d7ac6611fa54ae27c277a2995288a8fd089e6b46b791f73f3322177"
|
|
86
86
|
},
|
|
87
87
|
{
|
|
88
88
|
"path": "commands/label.md",
|
|
89
|
-
"bytes":
|
|
90
|
-
"sha256": "
|
|
89
|
+
"bytes": 898,
|
|
90
|
+
"sha256": "45f0422cce8764a19158a98e95b6b3c790e7a01b3438d9b5471ddb5f8c544129"
|
|
91
91
|
},
|
|
92
92
|
{
|
|
93
93
|
"path": "commands/list.md",
|
|
94
|
-
"bytes":
|
|
95
|
-
"sha256": "
|
|
94
|
+
"bytes": 2628,
|
|
95
|
+
"sha256": "990a0e6ef5af6a6ec596df32590750efd27fd231a44a0882d3f900dc71a4380f"
|
|
96
96
|
},
|
|
97
97
|
{
|
|
98
98
|
"path": "commands/prime.md",
|
|
@@ -101,8 +101,8 @@
|
|
|
101
101
|
},
|
|
102
102
|
{
|
|
103
103
|
"path": "commands/quickstart.md",
|
|
104
|
-
"bytes":
|
|
105
|
-
"sha256": "
|
|
104
|
+
"bytes": 537,
|
|
105
|
+
"sha256": "de372b2dac3b1786ee383e8295bca781d6ce890db0daa09efa4d044325b80bbc"
|
|
106
106
|
},
|
|
107
107
|
{
|
|
108
108
|
"path": "commands/ready.md",
|
|
@@ -111,28 +111,28 @@
|
|
|
111
111
|
},
|
|
112
112
|
{
|
|
113
113
|
"path": "commands/rename-prefix.md",
|
|
114
|
-
"bytes":
|
|
115
|
-
"sha256": "
|
|
114
|
+
"bytes": 574,
|
|
115
|
+
"sha256": "2e6a457dfe58a855daecc0581433584073d7b52565a9bdb85131d1b4a3d920e8"
|
|
116
116
|
},
|
|
117
117
|
{
|
|
118
118
|
"path": "commands/reopen.md",
|
|
119
|
-
"bytes":
|
|
120
|
-
"sha256": "
|
|
119
|
+
"bytes": 595,
|
|
120
|
+
"sha256": "ea5535f0004d3137f05b6fc81cff1ecc670d918465b7d878eb6cb01d2427578c"
|
|
121
121
|
},
|
|
122
122
|
{
|
|
123
123
|
"path": "commands/restore.md",
|
|
124
|
-
"bytes":
|
|
125
|
-
"sha256": "
|
|
124
|
+
"bytes": 714,
|
|
125
|
+
"sha256": "94928e7b5d8ca1da80571e56685020f31eba6ce8fd38100cba09f00a051e164e"
|
|
126
126
|
},
|
|
127
127
|
{
|
|
128
128
|
"path": "commands/search.md",
|
|
129
|
-
"bytes":
|
|
130
|
-
"sha256": "
|
|
129
|
+
"bytes": 3190,
|
|
130
|
+
"sha256": "2295d2cf34f0d7c3a74fab86f73aa312435870c97aa71d8c965486a450310085"
|
|
131
131
|
},
|
|
132
132
|
{
|
|
133
133
|
"path": "commands/show.md",
|
|
134
|
-
"bytes":
|
|
135
|
-
"sha256": "
|
|
134
|
+
"bytes": 563,
|
|
135
|
+
"sha256": "51aa4b5a5bebeb9f1027f5a31a3de307dd8116052471f40272f0b2c980c720af"
|
|
136
136
|
},
|
|
137
137
|
{
|
|
138
138
|
"path": "commands/stats.md",
|
|
@@ -141,8 +141,8 @@
|
|
|
141
141
|
},
|
|
142
142
|
{
|
|
143
143
|
"path": "commands/sync.md",
|
|
144
|
-
"bytes":
|
|
145
|
-
"sha256": "
|
|
144
|
+
"bytes": 4964,
|
|
145
|
+
"sha256": "09d999165b93ea183e5828c94d45498503ed179211db5f68b3c32f372ade9ac7"
|
|
146
146
|
},
|
|
147
147
|
{
|
|
148
148
|
"path": "commands/template.md",
|
|
@@ -151,8 +151,8 @@
|
|
|
151
151
|
},
|
|
152
152
|
{
|
|
153
153
|
"path": "commands/update.md",
|
|
154
|
-
"bytes":
|
|
155
|
-
"sha256": "
|
|
154
|
+
"bytes": 870,
|
|
155
|
+
"sha256": "34896bde7871805fb1941afd81a25ebc2ce1030090b8ce96afc63763bd2bd108"
|
|
156
156
|
},
|
|
157
157
|
{
|
|
158
158
|
"path": "commands/version.md",
|