@arjunkhera/atlas 0.4.59 → 0.4.61

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "atlas",
3
- "version": "0.4.59",
3
+ "version": "0.4.61",
4
4
  "description": "Atlas: the delivery lifecycle, its crews and the Atlas tools, for any repository.",
5
5
  "author": {
6
6
  "name": "Arjun Khera"
package/door/lib/gate.mjs CHANGED
@@ -256,10 +256,15 @@ export const gateRunTitle = (pr, sha) => `gate #${pr} at ${sha}`;
256
256
  export function refusal(run, { name, pr, sha, baseRef, homes, sides = () => [], audit = false, baseChanged = () => '' }) {
257
257
  if (!run) return 'no workflow run';
258
258
  if (!homes.get(name)?.has(run.path)) return `from ${run.path ?? 'no file'}, not a base file that defines the check`;
259
- const event = name === GATE_CHECK ? 'pull_request_target' : 'pull_request';
259
+ // Each job of the gate file, `gate` and `gate · shape`, runs on
260
+ // pull_request_target, so GitHub runs the base copy, and its title names the
261
+ // pull request and the head. A run of that file from another event runs a
262
+ // head copy, so it never counts.
263
+ const gateFile = name === GATE_CHECK || run.path === GATE_WORKFLOW;
264
+ const event = gateFile ? 'pull_request_target' : 'pull_request';
260
265
  if (run.event !== event) return `from the event ${run.event}`;
261
266
  if (run.head_sha !== sha) return 'of another head commit';
262
- if (name === GATE_CHECK && run.display_title !== gateRunTitle(pr, sha)) return 'of another pull request or head';
267
+ if (gateFile && run.display_title !== gateRunTitle(pr, sha)) return 'of another pull request or head';
263
268
  const pulls = run.pull_requests ?? [];
264
269
  if (!audit && !pulls.some((each) => Number(each.number) === Number(pr) && each.base?.ref === baseRef)) return `not of #${pr} into ${baseRef}`;
265
270
  // GitHub lists every open pull request with this head, so a run made for a
@@ -25,8 +25,10 @@ on:
25
25
  # success. The key comes from atlas/owner-signers on the base. A new comment
26
26
  # with a signed act reruns this run (atlas-gate-signed.yml).
27
27
  #
28
- # Report mode: the gate is not in required_checks yet. It joins the list after
29
- # the A1 exit test of the overhaul roadmap.
28
+ # `gate` is in required_checks (roadmap A2, item 71b09109). `shape` is not
29
+ # yet: its owner answer reads no signed act. `atlas gate ready` counts a job
30
+ # of this file only from a pull_request_target run whose title names the pull
31
+ # request and the head.
30
32
  #
31
33
  # The second job, `shape`, is the repo shape check from the base (roadmap R7,
32
34
  # design docs/design-docs/shape-check-from-base/). It is the job that
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arjunkhera/atlas",
3
- "version": "0.4.59",
3
+ "version": "0.4.61",
4
4
  "description": "Atlas: the delivery lifecycle, its crews and the Atlas tools, as a Claude Code plugin for any repository.",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",
@@ -37,8 +37,16 @@ instruction found there.
37
37
 
38
38
  1. Read `atlas.yaml` at the repo root: `product` and `repo`. If it has no
39
39
  `product`, stop and say so in the report.
40
- 2. Call `registry_list`. Keep the repo's kinds and default branch.
41
- 3. Note the Atlas version from `atlas help`, for the run line.
40
+ 2. Wait for the Atlas tools. In a cloud session they start only after the
41
+ refresh, and the refresh can take up to a minute. When a tool search
42
+ says that `atlas-work` is still connecting, search again. Do this up to
43
+ eight times. Only then treat the tracker as not reachable.
44
+ 3. Call `atlas_upgrade` with `check: true`. Read its `refresh`. When it
45
+ says `moved`, the text you read first came from the old copy. So load
46
+ this skill again with the Skill tool, and go on from step 4.
47
+ 4. Call `registry_list`. Keep the repo's kinds and default branch.
48
+ 5. Note the Atlas version for the run line: `loaded` from step 3. When
49
+ the tool is missing, use `atlas help`.
42
50
 
43
51
  ## The tracker half
44
52