@functional-systems/srcx 0.1.0-dev.3 → 0.1.0-dev.30

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.
Files changed (60) hide show
  1. package/CHANGELOG.md +132 -1
  2. package/DESIGN.md +193 -58
  3. package/README.md +542 -38
  4. package/RELEASING.md +30 -9
  5. package/VALIDATION.md +834 -25
  6. package/dist/build.d.ts +81 -1
  7. package/dist/build.js +187 -37
  8. package/dist/build.js.map +1 -1
  9. package/dist/chunk.d.ts +9 -3
  10. package/dist/chunk.js +341 -14
  11. package/dist/chunk.js.map +1 -1
  12. package/dist/cli.js +103 -19
  13. package/dist/cli.js.map +1 -1
  14. package/dist/file-policy.d.ts +20 -0
  15. package/dist/file-policy.js +96 -0
  16. package/dist/file-policy.js.map +1 -0
  17. package/dist/implementation.d.ts +11 -0
  18. package/dist/implementation.js +191 -0
  19. package/dist/implementation.js.map +1 -0
  20. package/dist/publish.d.ts +18 -0
  21. package/dist/publish.js +158 -34
  22. package/dist/publish.js.map +1 -1
  23. package/dist/releases.js +21 -3
  24. package/dist/releases.js.map +1 -1
  25. package/dist/remote.js +38 -9
  26. package/dist/remote.js.map +1 -1
  27. package/dist/repository.d.ts +4 -1
  28. package/dist/repository.js +15 -11
  29. package/dist/repository.js.map +1 -1
  30. package/dist/rerank.d.ts +16 -0
  31. package/dist/rerank.js +87 -0
  32. package/dist/rerank.js.map +1 -0
  33. package/dist/search.d.ts +14 -4
  34. package/dist/search.js +119 -23
  35. package/dist/search.js.map +1 -1
  36. package/dist/skills.d.ts +24 -0
  37. package/dist/skills.js +155 -0
  38. package/dist/skills.js.map +1 -0
  39. package/package.json +16 -5
  40. package/runtime/grammars/README.md +50 -0
  41. package/runtime/grammars/tree-sitter-bash.LICENSE +21 -0
  42. package/runtime/grammars/tree-sitter-bash.wasm +0 -0
  43. package/runtime/grammars/tree-sitter-sql.LICENSE +21 -0
  44. package/runtime/grammars/tree-sitter-sql.wasm +0 -0
  45. package/runtime/grammars/tree-sitter-wasm.LICENSE +21 -0
  46. package/runtime/qwen.py +132 -0
  47. package/runtime/requirements.txt +34 -0
  48. package/skills/srcx-search/SKILL.md +85 -0
  49. package/src/build.ts +258 -47
  50. package/src/chunk.ts +360 -12
  51. package/src/cli.ts +212 -24
  52. package/src/file-policy.ts +157 -0
  53. package/src/implementation.ts +253 -0
  54. package/src/publish.ts +226 -34
  55. package/src/releases.ts +36 -3
  56. package/src/remote.ts +59 -13
  57. package/src/repository.ts +20 -11
  58. package/src/rerank.ts +131 -0
  59. package/src/search.ts +154 -28
  60. package/src/skills.ts +205 -0
@@ -0,0 +1,191 @@
1
+ import { CHUNKER, detectLanguage, tokens, withSyntaxTree } from "./chunk.js";
2
+ import { invariant, lineAt } from "./common.js";
3
+ const children = (n) => n.namedChildren.filter((c) => !!c);
4
+ /** Only imported typing overload aliases used exclusively as decorators are safe here. */
5
+ function overloadAliases(root) {
6
+ const aliases = new Set(), imports = new Set();
7
+ for (const n of children(root)) {
8
+ if (n.type !== "import_from_statement" ||
9
+ !["typing", "typing_extensions"].includes(n.childForFieldName("module_name")?.text ?? ""))
10
+ continue;
11
+ for (const name of n.childrenForFieldName("name")) {
12
+ if (!name)
13
+ continue;
14
+ if (name.type === "dotted_name" && name.text === "overload") {
15
+ aliases.add("overload");
16
+ imports.add(name.id);
17
+ }
18
+ else if (name.type === "aliased_import" &&
19
+ name.childForFieldName("name")?.text === "overload") {
20
+ const alias = name.childForFieldName("alias");
21
+ if (alias) {
22
+ aliases.add(alias.text);
23
+ imports.add(name.id);
24
+ }
25
+ }
26
+ }
27
+ }
28
+ function visit(n) {
29
+ if (imports.has(n.id))
30
+ return;
31
+ if (n.type === "wildcard_import")
32
+ aliases.clear();
33
+ if (n.type === "identifier" &&
34
+ aliases.has(n.text) &&
35
+ !(n.parent?.type === "decorator" && n.parent.text === `@${n.text}`))
36
+ aliases.delete(n.text);
37
+ for (const child of children(n))
38
+ visit(child);
39
+ }
40
+ visit(root);
41
+ return aliases;
42
+ }
43
+ function definition(n, python, aliases) {
44
+ const d = n.childForFieldName(python ? "definition" : "declaration") ?? n;
45
+ const name = d.childForFieldName("name");
46
+ if (!name ||
47
+ ![
48
+ "identifier",
49
+ "property_identifier",
50
+ "private_property_identifier",
51
+ ].includes(name.type))
52
+ return;
53
+ if (python) {
54
+ if (d.type !== "function_definition")
55
+ return;
56
+ const decorators = children(n).filter((c) => c.type === "decorator");
57
+ const declaration = decorators.some((c) => aliases.has(c.text.slice(1)));
58
+ const body = d.childForFieldName("body");
59
+ // Stubs without an overload marker do not supply an implementation.
60
+ const executable = body &&
61
+ children(body).some((c) => c.type !== "comment" &&
62
+ c.type !== "pass_statement" &&
63
+ !(c.type === "expression_statement" &&
64
+ ["ellipsis", "string"].includes(c.firstNamedChild?.type ?? "")));
65
+ if (!declaration && !executable)
66
+ return;
67
+ // Other decorators may change dispatch (property, singledispatch, etc.).
68
+ if (decorators.some((c) => !aliases.has(c.text.slice(1)) &&
69
+ !["@staticmethod", "@classmethod"].includes(c.text)))
70
+ return;
71
+ const modifier = decorators
72
+ .filter((c) => ["@staticmethod", "@classmethod"].includes(c.text))
73
+ .map((c) => c.text)
74
+ .sort()
75
+ .join(":");
76
+ const async = d.children.some((c) => c?.type === "async");
77
+ return {
78
+ node: n,
79
+ name: name.text,
80
+ key: `${name.text}:${modifier}:${async}`,
81
+ declaration,
82
+ };
83
+ }
84
+ if (n !== d && n.type !== "export_statement")
85
+ return;
86
+ if (![
87
+ "function_signature",
88
+ "function_declaration",
89
+ "method_signature",
90
+ "method_definition",
91
+ ].includes(d.type))
92
+ return;
93
+ const prefix = d.text.slice(0, name.startIndex - d.startIndex);
94
+ if (/\b(abstract|get|set|declare)\b/.test(prefix))
95
+ return;
96
+ const method = d.type.startsWith("method");
97
+ const declaration = d.type.endsWith("signature");
98
+ if (!declaration && !d.childForFieldName("body"))
99
+ return;
100
+ return {
101
+ node: n,
102
+ name: name.text,
103
+ key: `${method}:${/\bstatic\b/.test(prefix)}:${name.text}`,
104
+ declaration,
105
+ };
106
+ }
107
+ /** Follow only a contiguous, unambiguous overload group in the same AST container. */
108
+ export async function implementationSpan(source, path, span) {
109
+ const raw = Buffer.from(source), lang = detectLanguage(path);
110
+ invariant(Number.isInteger(span.startByte) &&
111
+ Number.isInteger(span.endByte) &&
112
+ span.startByte >= 0 &&
113
+ span.endByte > span.startByte &&
114
+ span.endByte <= raw.length, "Invalid implementation source range.");
115
+ if (!["python", "typescript", "tsx"].includes(lang) ||
116
+ /\.(pyi|d\.ts|d\.tsx)$/i.test(path))
117
+ return { status: "unsupported" };
118
+ const start = raw.subarray(0, span.startByte).toString("utf8").length;
119
+ const end = raw.subarray(0, span.endByte).toString("utf8").length;
120
+ return withSyntaxTree(source, lang, (root) => {
121
+ if (root.hasError)
122
+ return { status: "parse-error" };
123
+ const python = lang === "python", aliases = python ? overloadAliases(root) : new Set();
124
+ const targets = [];
125
+ function visit(container) {
126
+ const siblings = children(container).filter((n) => n.type !== "comment");
127
+ const definitions = siblings.map((n) => definition(n, python, aliases));
128
+ for (let i = 0; i < definitions.length; i++) {
129
+ const d = definitions[i];
130
+ // A class/container hit is not a declaration hit. Require the selected
131
+ // span to end before the implementation, and contain a whole declaration.
132
+ if (!d?.declaration ||
133
+ d.node.startIndex < start ||
134
+ d.node.endIndex > end)
135
+ continue;
136
+ let first = i;
137
+ while (first > 0 &&
138
+ definitions[first - 1]?.declaration &&
139
+ definitions[first - 1]?.key === d.key)
140
+ first--;
141
+ let next = first;
142
+ while (definitions[next]?.declaration &&
143
+ definitions[next]?.key === d.key)
144
+ next++;
145
+ const target = definitions[next];
146
+ if (!target ||
147
+ target.declaration ||
148
+ target.key !== d.key ||
149
+ target.node.startIndex < end)
150
+ continue;
151
+ const matches = siblings.filter((n) => {
152
+ const node = n.childForFieldName(python ? "definition" : "declaration") ?? n;
153
+ // TypeScript namespaces augment a function without adding another body.
154
+ // Keep other same-name declarations in the ambiguity check.
155
+ if (!python && node.type === "internal_module")
156
+ return false;
157
+ return node.childForFieldName("name")?.text === d.name;
158
+ });
159
+ if (matches.length !== next - first + 1)
160
+ continue;
161
+ // Reject unrelated code included in the selected chunk, but allow trivia
162
+ // between declarations (the chunker can attach comments/whitespace).
163
+ const selected = siblings.filter((n) => n.startIndex < end && n.endIndex > start);
164
+ if (selected.some((n) => !definitions.slice(first, next).some((x) => x?.node.id === n.id)))
165
+ continue;
166
+ if (!targets.some((t) => t.node.id === target.node.id))
167
+ targets.push(target);
168
+ }
169
+ for (const child of siblings)
170
+ visit(child);
171
+ }
172
+ visit(root);
173
+ if (targets.length !== 1)
174
+ return { status: "not-linked" };
175
+ const target = targets[0];
176
+ const startLine = lineAt(raw, Buffer.byteLength(source.slice(0, target.node.startIndex)));
177
+ const endLine = lineAt(raw, Buffer.byteLength(source.slice(0, target.node.endIndex)) - 1);
178
+ const text = (source.match(/[^\n]*\n|[^\n]+$/g) ?? [])
179
+ .slice(startLine - 1, endLine)
180
+ .join("");
181
+ if (tokens(text) > CHUNKER.maxTokens)
182
+ return { status: "too-large" };
183
+ return {
184
+ status: "resolved",
185
+ startLine,
186
+ endLine,
187
+ symbol: target.name,
188
+ };
189
+ });
190
+ }
191
+ //# sourceMappingURL=implementation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"implementation.js","sourceRoot":"","sources":["../src/implementation.ts"],"names":[],"mappings":"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"}
package/dist/publish.d.ts CHANGED
@@ -25,6 +25,8 @@ export type Journal = {
25
25
  attemptId: string;
26
26
  writer: string;
27
27
  source: string;
28
+ gitRef?: string;
29
+ reuseWriter?: boolean;
28
30
  baseline?: Published;
29
31
  phase: "branch" | "writing" | "waiting" | "publishing";
30
32
  batches: {
@@ -37,6 +39,22 @@ export type Journal = {
37
39
  snapshotId: string;
38
40
  };
39
41
  };
42
+ /** The applied snapshot may differ from the shared canonical commit Tag. */
43
+ export type TrackedBranch = Doc & {
44
+ gitRef: string;
45
+ writer: string;
46
+ applied?: Published;
47
+ publishedTagName?: string;
48
+ pending?: {
49
+ attemptId: string;
50
+ buildId: string;
51
+ commitOid: string;
52
+ };
53
+ };
54
+ export declare function gitBranchName(ref: string): string;
55
+ export declare const gitBranchId: (ref: string) => string;
56
+ export declare const lastBuildPath: (state: string, ref?: string) => string;
57
+ export declare function trackedBranch(store: CollectionStore, binding: Binding, ref: string): Promise<TrackedBranch | undefined>;
40
58
  export declare function versionTag(oid: string): string;
41
59
  export declare function versionId(oid: string): string;
42
60
  export declare function exclusive<T>(directory: string, work: () => Promise<T>): Promise<T>;
package/dist/publish.js CHANGED
@@ -2,8 +2,27 @@ import { mkdir, rm, readFile } from "node:fs/promises";
2
2
  import { join } from "node:path";
3
3
  import { randomUUID } from "node:crypto";
4
4
  import { atomic, canonical, hash, invariant, optionalJson, sleep, } from "./common.js";
5
- import { corpusMetadata, records, validateBuild } from "./build.js";
5
+ import { corpusMetadata, records, recordHash, supportedPreset, validateBuild, } from "./build.js";
6
6
  import { branch, tag, one } from "./remote.js";
7
+ export function gitBranchName(ref) {
8
+ invariant(ref.startsWith("refs/heads/") && ref.length > 11, "Expected a full Git branch ref.");
9
+ return `git-${hash(ref).slice(0, 40)}`;
10
+ }
11
+ export const gitBranchId = (ref) => `branch-${hash(ref)}`;
12
+ export const lastBuildPath = (state, ref) => join(state, ref ? `last-build-${hash(ref)}.json` : "last-build.json");
13
+ export async function trackedBranch(store, binding, ref) {
14
+ const doc = await one(store, branch("main"), gitBranchId(ref), true);
15
+ if (!doc)
16
+ return undefined;
17
+ invariant(doc.kind === "manifest" &&
18
+ doc.role === "git-branch" &&
19
+ doc.gitRef === ref &&
20
+ doc.writer === gitBranchName(ref) &&
21
+ doc.repoId === binding.repoId &&
22
+ doc.indexId === binding.indexId &&
23
+ doc.configHash === binding.configHash, "Tracked branch identity mismatch.");
24
+ return doc;
25
+ }
7
26
  export function versionTag(oid) {
8
27
  return `ver-${hash(oid).slice(0, 40)}`;
9
28
  }
@@ -60,8 +79,13 @@ export async function validateCandidate(store, name, b, binding, attemptId) {
60
79
  for (const d of corpusMetadata(b, binding.repoId, binding.indexId, attemptId))
61
80
  expected.set(d.id, hash(d));
62
81
  for await (const d of store.list(tag(name))) {
63
- if (expected.get(d.id) !== hash(d))
82
+ try {
83
+ if (expected.get(d.id) !== recordHash(d, b.preset))
84
+ return false;
85
+ }
86
+ catch {
64
87
  return false;
88
+ }
65
89
  expected.delete(d.id);
66
90
  }
67
91
  if (expected.size)
@@ -73,11 +97,8 @@ export async function validateCandidate(store, name, b, binding, attemptId) {
73
97
  for await (const d of records(b.directory)) {
74
98
  if (d.kind !== "chunk")
75
99
  continue;
76
- // Keep a complete surface token: the standard analyzer may retain dots
77
- // (e.g. code.ts), so extracting an alphanumeric substring is not a valid probe.
78
- const term = String(d.symbol ?? d.searchText).match(/\S+/u)?.[0];
79
- if (!term)
80
- continue;
100
+ // Probe an indexed chunk ID: a valid source may contain only stop words
101
+ // or punctuation, so text-query matches cannot establish readiness.
81
102
  query = {
82
103
  bool: [
83
104
  {
@@ -90,16 +111,8 @@ export async function validateCandidate(store, name, b, binding, attemptId) {
90
111
  },
91
112
  {
92
113
  queryString: {
93
- query: d.fileId,
94
- defaultField: "fileId",
95
- skipSyntax: true,
96
- },
97
- occur: "filter",
98
- },
99
- {
100
- queryString: {
101
- query: term,
102
- defaultField: "searchText",
114
+ query: d.id,
115
+ defaultField: "id",
103
116
  skipSyntax: true,
104
117
  },
105
118
  occur: "must",
@@ -110,7 +123,8 @@ export async function validateCandidate(store, name, b, binding, attemptId) {
110
123
  }
111
124
  const found = await store.query(name, query, 1);
112
125
  if (!found.length ||
113
- found.some((h) => h.doc.kind !== "chunk" || b.recordHashes[h.doc.id] !== hash(h.doc)))
126
+ found.some((h) => h.doc.kind !== "chunk" ||
127
+ b.recordHashes[h.doc.id] !== recordHash(h.doc, b.preset)))
114
128
  return false;
115
129
  }
116
130
  return true;
@@ -160,31 +174,79 @@ export async function published(store, binding) {
160
174
  export async function publish(args) {
161
175
  const { store, binding, build: b, state } = args;
162
176
  invariant(b.repoKey === binding.repoKey && b.configHash === binding.configHash, "Build does not belong to this index.");
163
- invariant(!b.preset.embedding, "CLI publication currently supports only the embedding=none preset.");
177
+ invariant(!b.preset.embedding || supportedPreset(b.preset), "Publication requires a supported lexical or managed embedding preset.");
164
178
  await validateBuild(b);
165
179
  const journalPath = join(state, "pending.json");
166
180
  let j = await optionalJson(journalPath);
167
181
  if (j) {
168
182
  invariant(j.buildId === b.buildId &&
169
183
  j.recordsHash === b.recordsHash &&
170
- j.inventoryHash === b.inventoryHash, "Another build is pending. Resume the artifact recorded in pending.json before importing a new commit.");
184
+ j.inventoryHash === b.inventoryHash &&
185
+ (j.gitRef === b.branchRef ||
186
+ (j.reuseWriter === undefined && j.writer.startsWith("work-"))), "Another build is pending. Resume the artifact recorded in pending.json before importing a new commit.");
171
187
  invariant(args.resume, "Pending import found; use --resume with the same artifact.");
172
188
  }
173
189
  const existing = (await published(store, binding)).find((v) => v.commitOid === b.commitOid);
190
+ const tracked = b.branchRef
191
+ ? await trackedBranch(store, binding, b.branchRef)
192
+ : undefined;
193
+ if (tracked?.pending)
194
+ invariant(j?.attemptId === tracked.pending.attemptId, "Git branch has a pending import; resume with its original retry journal.");
195
+ if (j?.gitRef && j.phase !== "branch")
196
+ invariant(tracked?.pending?.attemptId === j.attemptId ||
197
+ (j.phase === "publishing" &&
198
+ !tracked?.pending &&
199
+ tracked?.applied?.attemptId === j.attemptId), "Tracked branch import ownership changed; refusing to replay this journal.");
174
200
  if (existing) {
175
201
  invariant(await validateCandidate(store, existing.tagName, b, binding, existing.attemptId), "Existing published version differs from this build.");
176
- await atomic(join(state, "last-build.json"), {
177
- artifact: b.directory,
178
- version: existing,
179
- });
180
- if (j)
202
+ // A shared commit Tag does not mean this Git branch has applied that commit.
203
+ if (!j && (!b.branchRef || tracked?.applied?.commitOid === b.commitOid)) {
204
+ if (tracked?.applied) {
205
+ const writer = (await store.branches()).find((x) => x.name === tracked.writer);
206
+ invariant(writer?.snapshotId === tracked.applied.snapshotId, "Writer baseline has changed; refusing to update tracked branch.");
207
+ invariant(await validateCandidate(store, tracked.applied.tagName, b, binding, tracked.applied.attemptId), "Tracked branch baseline validation failed.");
208
+ }
209
+ await atomic(lastBuildPath(state, b.branchRef), {
210
+ artifact: b.directory,
211
+ version: existing,
212
+ });
213
+ return existing;
214
+ }
215
+ // Legacy manual imports can finish bookkeeping after publication on retry.
216
+ if (j && !j.gitRef) {
217
+ await atomic(lastBuildPath(state), {
218
+ artifact: b.directory,
219
+ version: existing,
220
+ });
181
221
  await rm(journalPath);
182
- return existing;
222
+ return existing;
223
+ }
183
224
  }
184
225
  if (!j) {
185
226
  let source = "checkpoint-empty";
186
227
  let baseline;
187
- if (args.baseline) {
228
+ if (b.branchRef) {
229
+ const writer = (await store.branches()).find((x) => x.name === gitBranchName(b.branchRef));
230
+ if (tracked?.applied) {
231
+ baseline = tracked.applied;
232
+ invariant(writer?.snapshotId === baseline.snapshotId, "Writer baseline has changed; refusing to update tracked branch.");
233
+ const pin = (await store.tags()).find((t) => t.name === baseline.tagName);
234
+ const root = await one(store, tag(baseline.tagName), "__manifest__");
235
+ invariant(pin?.snapshotId === baseline.snapshotId &&
236
+ root?.repoId === binding.repoId &&
237
+ root.indexId === binding.indexId &&
238
+ root.configHash === binding.configHash &&
239
+ root.buildId === baseline.buildId &&
240
+ root.attemptId === baseline.attemptId &&
241
+ root.recordsHash === baseline.recordsHash &&
242
+ root.inventoryHash === baseline.inventoryHash &&
243
+ root.commitOid === baseline.commitOid, "Tracked branch baseline Tag is missing or changed.");
244
+ }
245
+ else {
246
+ invariant(!writer && !tracked, "Unowned or unfinished tracked branch; retain its retry journal.");
247
+ }
248
+ }
249
+ else if (args.baseline?.version.writer.startsWith("work-")) {
188
250
  const prev = args.baseline;
189
251
  await validateBuild(prev.build);
190
252
  invariant(prev.build.repoKey === b.repoKey &&
@@ -202,7 +264,9 @@ export async function publish(args) {
202
264
  inventoryHash: b.inventoryHash,
203
265
  artifact: b.directory,
204
266
  attemptId,
205
- writer: `work-${attemptId}`,
267
+ writer: b.branchRef ? gitBranchName(b.branchRef) : `work-${attemptId}`,
268
+ gitRef: b.branchRef,
269
+ reuseWriter: !!tracked?.applied,
206
270
  source,
207
271
  baseline,
208
272
  phase: "branch",
@@ -212,12 +276,39 @@ export async function publish(args) {
212
276
  }
213
277
  const save = () => atomic(journalPath, j);
214
278
  if (j.phase === "branch") {
279
+ if (j.gitRef) {
280
+ // Record intent before any corpus mutation, including before branch creation.
281
+ // A fresh local state must not treat a lagging, partially written head as clean.
282
+ const current = await trackedBranch(store, binding, j.gitRef);
283
+ invariant((!current?.pending || current.pending.attemptId === j.attemptId) &&
284
+ current?.applied?.snapshotId === j.baseline?.snapshotId, "Git branch ownership or baseline changed before import.");
285
+ await store.upsert("main", [
286
+ {
287
+ ...current,
288
+ id: gitBranchId(j.gitRef),
289
+ kind: "manifest",
290
+ role: "git-branch",
291
+ schemaVersion: 1,
292
+ repoId: binding.repoId,
293
+ indexId: binding.indexId,
294
+ configHash: binding.configHash,
295
+ gitRef: j.gitRef,
296
+ writer: j.writer,
297
+ pending: {
298
+ attemptId: j.attemptId,
299
+ buildId: j.buildId,
300
+ commitOid: b.commitOid,
301
+ },
302
+ },
303
+ ]);
304
+ }
215
305
  const branches = await store.branches();
216
306
  const found = branches.find((x) => x.name === j.writer);
217
307
  if (found)
218
- invariant(found.parent === j.source &&
308
+ invariant((j.reuseWriter || found.parent === j.source) &&
219
309
  found.snapshotId === (j.baseline?.snapshotId ?? null), "Partially created writer has an unexpected baseline.");
220
310
  else {
311
+ invariant(!j.reuseWriter, "Tracked writer is missing; refusing to recreate a nonempty baseline.");
221
312
  const source = branches.find((x) => x.name === j.source);
222
313
  invariant(source &&
223
314
  (j.baseline
@@ -237,7 +328,7 @@ export async function publish(args) {
237
328
  if (j.baseline)
238
329
  for await (const d of store.list(tag(j.baseline.tagName))) {
239
330
  oldIds.add(d.id);
240
- oldHashes.set(d.id, hash(d));
331
+ oldHashes.set(d.id, recordHash(d, b.preset));
241
332
  }
242
333
  const newIds = new Set([
243
334
  ...Object.keys(b.recordHashes),
@@ -309,8 +400,10 @@ export async function publish(args) {
309
400
  const name = versionTag(b.commitOid);
310
401
  const found = (await store.tags()).find((t) => t.name === name);
311
402
  const final = found ?? (await store.tag(name, tag(j.candidate.name)));
312
- invariant(final.snapshotId === j.candidate.snapshotId, "Published Tag name already points to a different snapshot.");
313
- const result = {
403
+ invariant(existing
404
+ ? final.snapshotId === existing.snapshotId
405
+ : final.snapshotId === j.candidate.snapshotId, "Published Tag name already points to a different snapshot.");
406
+ const result = existing ?? {
314
407
  id: versionId(b.commitOid),
315
408
  kind: "manifest",
316
409
  role: "published",
@@ -330,8 +423,39 @@ export async function publish(args) {
330
423
  counts: b.counts,
331
424
  validation: { inventory: true, content: true, query: true },
332
425
  };
333
- await store.upsert("main", [result]);
334
- await atomic(join(state, "last-build.json"), {
426
+ if (!existing)
427
+ await store.upsert("main", [result]);
428
+ if (j.gitRef) {
429
+ const current = await trackedBranch(store, binding, j.gitRef);
430
+ invariant(current?.pending?.attemptId === j.attemptId ||
431
+ (!current?.pending && current?.applied?.attemptId === j.attemptId), "Tracked branch publication ownership changed.");
432
+ // Pin the exact writer baseline even when another branch published this commit first.
433
+ const applied = {
434
+ ...result,
435
+ writer: j.writer,
436
+ snapshotId: j.candidate.snapshotId,
437
+ tagName: final.snapshotId === j.candidate.snapshotId
438
+ ? final.name
439
+ : j.candidate.name,
440
+ attemptId: j.attemptId,
441
+ };
442
+ await store.upsert("main", [
443
+ {
444
+ id: gitBranchId(j.gitRef),
445
+ kind: "manifest",
446
+ role: "git-branch",
447
+ schemaVersion: 1,
448
+ repoId: binding.repoId,
449
+ indexId: binding.indexId,
450
+ configHash: binding.configHash,
451
+ gitRef: j.gitRef,
452
+ writer: j.writer,
453
+ applied,
454
+ publishedTagName: result.tagName,
455
+ },
456
+ ]);
457
+ }
458
+ await atomic(lastBuildPath(state, j.gitRef), {
335
459
  artifact: b.directory,
336
460
  version: result,
337
461
  });
@@ -1 +1 @@
1
- {"version":3,"file":"publish.js","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"publish.js","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"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"}
package/dist/releases.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { hash, invariant } from "./common.js";
2
2
  import { gitTags } from "./git.js";
3
3
  import { one, branch } from "./remote.js";
4
- import { published } from "./publish.js";
4
+ import { published, trackedBranch, } from "./publish.js";
5
5
  export const releaseAlias = (ref) => `rel-${hash(ref).slice(0, 40)}`;
6
6
  export const releaseId = (ref) => `ref-${hash(ref)}`;
7
7
  /** Only observed local tags. Absence is not deletion authority; this command never prunes. */
@@ -45,11 +45,29 @@ export async function syncTags(store, binding, path) {
45
45
  return results;
46
46
  }
47
47
  export async function resolveVersion(store, binding, selector) {
48
- const versions = await published(store, binding);
49
48
  const ref = selector.startsWith("refs/tags/")
50
49
  ? selector
51
50
  : `refs/tags/${selector}`;
52
- const control = await one(store, branch("main"), releaseId(ref), true);
51
+ const control = selector.startsWith("refs/heads/")
52
+ ? undefined
53
+ : await one(store, branch("main"), releaseId(ref), true);
54
+ const headRef = selector.startsWith("refs/heads/")
55
+ ? selector
56
+ : `refs/heads/${selector}`;
57
+ const head = !selector.startsWith("refs/") || selector.startsWith("refs/heads/")
58
+ ? await trackedBranch(store, binding, headRef)
59
+ : undefined;
60
+ invariant(!(head && control), "Ambiguous branch/tag name: use refs/heads/... or refs/tags/...");
61
+ // Pin moving ref control before listing versions. Otherwise publication can
62
+ // advance the ref to a version absent from the earlier list.
63
+ const versions = await published(store, binding);
64
+ if (head) {
65
+ invariant(head.applied, "Git branch has no published version yet; finish its import.");
66
+ const result = versions.find((v) => v.commitOid === head.applied.commitOid &&
67
+ v.tagName === head.publishedTagName);
68
+ invariant(result, "Git branch target is not a published version.");
69
+ return result;
70
+ }
53
71
  // Like Git import, a known tag name takes precedence over an OID spelling.
54
72
  // Its pending or invalid state must not fall back to an unrelated commit.
55
73
  if (!control && !selector.startsWith("refs/")) {