pm-github 2026.11.2 → 2026.11.11

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/CHANGELOG.md CHANGED
@@ -1,5 +1,30 @@
1
1
  # Changelog
2
2
 
3
+ ## 2026.11.11 - 2026-11-11
4
+
5
+ ### Fixed
6
+
7
+ - Explain scheduled install mismatches and preserve redacted command failure diagnostics ([pm-github-o9r7](https://github.com/unbraind/pm-github/blob/main/.agents/pm/issues/pm-github-o9r7.toon))
8
+ - Packed projection fixture cleanup can mask its own test outcome ([pm-github-mes8](https://github.com/unbraind/pm-github/blob/main/.agents/pm/issues/pm-github-mes8.toon))
9
+
10
+ ### Security
11
+
12
+ - Reusable Dependabot merge workflow with complete commit provenance ([pm-github-dependabot-merge](https://github.com/unbraind/pm-github/blob/main/.agents/pm/features/pm-github-dependabot-merge.toon))
13
+
14
+ ## 2026.11.4 - 2026-11-04
15
+
16
+ ### Fixed
17
+
18
+ - Make repeated gated imports byte-identical for closed items ([pm-github-repeat-noop](https://github.com/unbraind/pm-github/blob/main/.agents/pm/issues/pm-github-repeat-noop.toon))
19
+ - Reusable workflows fail after pm package install when callers pin zero-padded release tags like v2026.11.02 ([pm-github-4gak](https://github.com/unbraind/pm-github/blob/main/.agents/pm/issues/pm-github-4gak.toon))
20
+ - Allow public technical forms in the tracker privacy gate ([pm-github-01n8](https://github.com/unbraind/pm-github/blob/main/.agents/pm/issues/pm-github-01n8.toon))
21
+ - Resolve an unrelated unreachable commit identity reported by whole-store privacy checks ([pm-github-privacy-store-followup](https://github.com/unbraind/pm-github/blob/main/.agents/pm/issues/pm-github-privacy-store-followup.toon))
22
+
23
+ ### Other
24
+
25
+ - Bound coverage aggregation memory and compare default-heap CI behavior ([pm-github-vhi6](https://github.com/unbraind/pm-github/blob/main/.agents/pm/tasks/pm-github-vhi6.toon))
26
+ - Approve or amend the noreply identity on the normalize-release-tag-version branch commit ([pm-github-8mkc](https://github.com/unbraind/pm-github/blob/main/.agents/pm/tasks/pm-github-8mkc.toon))
27
+
3
28
  ## 2026.11.1 - 2026-11-01
4
29
 
5
30
  ### Fixed
package/README.md CHANGED
@@ -359,8 +359,8 @@ See [SDK adoption evidence](docs/sdk-adoption-1025.md).
359
359
  decoding first appeared in 2026.10.9, while the transaction `match` guard used
360
360
  by identity repair first appeared in 2026.10.17. The declared minimum must
361
361
  support both. Older hosts refuse installation or activation through matching
362
- peer/development minimum ranges and the top-level manifest floor. Development
363
- keeps an exact, integrity-locked SDK resolution. CI separately installs the exact
362
+ peer dependency minimum and the top-level manifest floor. Development uses
363
+ an independent exact, integrity-locked SDK pin. CI separately installs the exact
364
364
  minimum from npm, type-checks all production and operational SDK imports, then
365
365
  loads and exercises the packed artifact in a non-git tracker. See the
366
366
  [published SDK evidence](docs/sdk-minimum.md).
@@ -792,9 +792,20 @@ pm github gate --allowlist .pm-github-gate-allowlist.json
792
792
  It scans **only the proposed change** — the added lines and their filenames in the staged/working/untracked diff under the resolved pm tracker path (never a hardcoded `.agents/pm`; the SDK-resolved path wins), or an explicit `--diff` file — so pre-existing reviewed content is not re-litigated on every run, and removed content (which cannot publish anything new) is never scanned. A finding in a filename uses `field: "file_path"` and redacts a sensitive item id. It fails closed (non-zero, machine-readable report with `item_id` + `field` + `rule` + the sha256 `hash` of the matched content, **never the matched content itself**) on:
793
793
 
794
794
  - **credentials** — GitHub (`ghp_/gho_/ghu_/ghs_/ghr_` and fine-grained `github_pat_`), npm, AWS access key ids, Slack (including app and cookie credentials), OpenAI, Anthropic tokens, generic `Authorization: Bearer` values, `-----BEGIN … PRIVATE KEY-----` blocks, and high-entropy assignments to secret-named identifiers (`token = "…"`, `api_key: …`, `accessToken: …`) whose value has high measured entropy. UUID-shaped credential values and values containing dates receive the same checks;
795
- - **personal data** — email addresses other than no-reply identities (`@users.noreply.github.com`, `noreply@…`, `@noreply.…`), phone numbers in international (`+…`) or North-American (`(555) 123-4567`, `555-123-4567`) notation, and unformatted numbers under phone/tel/mobile contact labels;
795
+ - **personal data** — email addresses other than the reserved-domain fixtures described below and no-reply identities (`@users.noreply.github.com`, `noreply@…`, `@noreply.…`), phone numbers in international (`+…`) or North-American (`(555) 123-4567`, `555-123-4567`) notation, and unformatted numbers under phone/tel/mobile contact labels;
796
796
  - **host paths** — absolute local filesystem paths (POSIX home/system directories and Windows drive paths with either separator), and named home-directory references.
797
797
 
798
+ Public technical forms pass without a hash allowlist:
799
+
800
+ - procfs interfaces: `/proc`, `/proc/`, `/proc/self/…`, `/proc/<placeholder>/…` (including the bare `root` entry directly after the `self` pid, but no path below it; a concrete numeric pid stays a refusal); sysfs interfaces under `/sys`;
801
+ - hosted runner workspaces: the suffix `runner/work/<seg>/<seg>/…` under either `/home` or `/Users`, Windows `D:/a/<seg>/<seg>/…` with either separator, and `/opt/hostedtoolcache/…` — including the runner's own `tmp` scratch directory inside the workspace;
802
+ - fixture emails on exactly `example.com`, `example.net`, `example.org`, bare `localhost`, or domains ending in `.example`, `.invalid`, `.test` or `.localhost`, compared case-insensitively against the whole domain;
803
+ - SSH transport using only the `git` account: `git@host:owner/repo.git` or `ssh://git@host/owner/repo.git` (including a numeric SSH port);
804
+ - placeholder account segments `example`, `<placeholder>`, `{placeholder}`, `$USER`, `${USER}` or `%USERNAME%` directly after `/home/`, `/Users/` or Windows `C:\Users\` (either separator, also mixed within one path).
805
+ - markup around a path: a closing tag that names one word (`</var>`, `</root>`, `</data>`) is not a path, and a path match ends before it, so `<var>/home/<placeholder>/x</var>` is judged as the path alone. A closing tag that carries a path, such as `</home/alice>`, is still matched.
806
+
807
+ Concrete home accounts, named tilde home paths (`~name/…`, also straight after any character other than a letter, a number, `.`, `_`, `~`, `-`, `/` or `\`, such as `]`, `)` or `;`; a bare `~name` token without a path is not matched), `/root`, every `/tmp` path and `/var/folders` remain refusals. So do runner paths outside that workspace shape, placeholders below a concrete account, dot-segment traversal, percent/backslash escape variants, embedded identity roots (including `/root`, `/tmp`, `/private`, `/Volumes` and the mount roots continuing into a permitted tail), any path below procfs's own `root` entry, and a second host path hiding behind any punctuation (a bracket, label colon, assignment equals, `[`, `(`, `|`, `@` and the rest) inside a permitted form. Real emails, `git` contact addresses without a transport path, other SSH account names on non-reserved domains, and look-alikes such as `notexample.com` or `example.com.evil.io` remain refused. The table-driven corpus and `node scripts/prove-gate-public-forms.ts` verify these boundaries; [measurement and mutation evidence](https://github.com/unbraind/pm-github/blob/main/docs/gate-public-forms-evidence.md) records the eight-repository read-only scan.
808
+
798
809
  Unreadable input, malformed or truncated diffs, binary input, invalid UTF-8, Git failures, malformed allowlists, and scanner errors fail the gate. Untracked operational state in the tracker root (`locks/`, `extensions/`, `checkpoints/`) is excluded. Explicitly staged operational files remain in scope. Staged and unstaged changes are scanned separately, including staged content that the working copy subsequently removed.
799
810
 
800
811
  **False positives** are allowlisted by *content hash*, not by pattern: put the sha256 from the finding into `.pm-github-gate-allowlist.json` at the repository root (or pass `--allowlist <file>`) with a written justification. An entry suppresses exactly the reviewed content, can never widen to a pattern, and a missing justification fails the gate:
@@ -821,9 +832,134 @@ The `gate` receipt reports the verdict, scanned file count, findings, and allowl
821
832
 
822
833
  With `--json`, successful reports go to stdout; failures use the host CLI's JSON error envelope on stderr, with the redacted gate report serialized in `detail` (`jq ' .detail | fromjson ' gate-error.json`). Unreadable inputs produce a nonzero JSON refusal.
823
834
 
835
+ ## Verified Dependabot auto-merge
836
+
837
+ Use [the reusable merge workflow](.github/workflows/pm-github-dependabot-merge.yml)
838
+ instead of copying merge logic into each repository. It clears existing
839
+ auto-merge before tooling or metadata, then requests squash auto-merge only for
840
+ `pull_request_target` events whose PR author, event actor and re-run actor are all
841
+ `dependabot[bot]`. It reads **every page** of the PR commits API and requires
842
+ each commit's API-linked author to be Dependabot and its committer to be either
843
+ Dependabot or `web-flow`. Every commit must also have GitHub verification
844
+ `verified: true, reason: valid`; account attribution alone can be forged through
845
+ Git email fields.
846
+ The verified `web-flow` case was checked against real fleet PR data, including
847
+ the Dependabot commit in `pm-context#211`.
848
+
849
+ The commit list must match the PR's positive commit count, contain unique full
850
+ SHAs, end at its current head and remain stable across fresh API reads. Only
851
+ successful `dependabot/fetch-metadata` classification permits the `pm-toolchain`
852
+ group, extra explicitly allowed groups, or semver minor/patch updates. Major
853
+ updates outside those groups wait for review. The arm request includes
854
+ `--match-head-commit`; another read revokes it if the head changes while arming.
855
+
856
+ ```yaml
857
+ name: dependabot-auto-merge
858
+ on:
859
+ pull_request_target:
860
+ types: [opened, reopened, synchronize, ready_for_review, edited]
861
+ schedule:
862
+ - cron: "23 4 * * *"
863
+ workflow_dispatch:
864
+ permissions: {}
865
+ jobs:
866
+ verified-auto-merge:
867
+ if: github.event_name == 'pull_request_target' && github.event.pull_request.user.login == 'dependabot[bot]'
868
+ permissions:
869
+ contents: write
870
+ pull-requests: write
871
+ uses: unbraind/pm-github/.github/workflows/pm-github-dependabot-merge.yml@RELEASE_COMMIT_SHA # pm-github RELEASE_VERSION
872
+ with:
873
+ extra-allowed-groups: "" # Optional exact names, separated by commas or whitespace
874
+ secrets:
875
+ merge_token: ${{ secrets.DEPENDABOT_MERGE_TOKEN }}
876
+ audit-armed-requests:
877
+ if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch'
878
+ permissions:
879
+ contents: write
880
+ pull-requests: write
881
+ uses: unbraind/pm-github/.github/workflows/pm-github-dependabot-merge.yml@RELEASE_COMMIT_SHA # pm-github RELEASE_VERSION
882
+ with:
883
+ audit-only: true
884
+ secrets:
885
+ merge_token: ${{ secrets.DEPENDABOT_MERGE_TOKEN }}
886
+ ```
887
+
888
+ Replace `RELEASE_COMMIT_SHA` with the full 40-character SHA of the reviewed
889
+ release **containing this workflow**, and `RELEASE_VERSION` with that release's
890
+ version. This workflow is new; earlier releases do not contain it. Configure
891
+ Dependabot's `github-actions` ecosystem to maintain the SHA and same-line
892
+ `# pm-github <version>` comment. No release is created by this change.
893
+
894
+ GitHub documents [read-only tokens for Dependabot-triggered pull requests](https://docs.github.com/en/code-security/reference/supply-chain-security/troubleshoot-dependabot/dependabot-on-actions).
895
+ Provide `DEPENDABOT_MERGE_TOKEN` as both an Actions secret and a Dependabot
896
+ secret, restricted to the calling repository with Contents and Pull requests
897
+ write permissions. The optional `merge_token` falls back to `github.token`;
898
+ that fallback can arm or revoke only when repository/event policy actually
899
+ grants the necessary writes. Reusable workflows cannot elevate caller
900
+ permissions. Keep auto-merge enabled in repository settings and required checks
901
+ and review rules on the protected base branch.
902
+
903
+ Foreign commits revoke auto-merge and produce a successful job, a summary and
904
+ `::notice` listing **short SHA and author login only**. Disallowed metadata,
905
+ unsupported arm events (including `pull_request`), API failures and incomplete
906
+ pagination also leave auto-merge unarmed with a clear notice. Every CLI call is
907
+ limited to three attempts of 60 seconds each by default. The TypeScript policy
908
+ adapter reads `DEPENDABOT_GH_TIMEOUT_SECONDS` (integer 1–60, default 60) and also
909
+ accepts a millisecond timeout option. Invalid adapter deadlines fail before
910
+ starting a CLI call. Pre-tooling shell calls retain a fixed 60-second deadline.
911
+ Failed attempts discard partial
912
+ output. A timed-out state read still attempts revocation. An
913
+ inability to revoke is an operational failure that warns the request may remain
914
+ armed, rather than a false successful safety claim.
915
+ No PR files, Git author names/emails, commit messages or raw API errors are
916
+ printed. Actions are SHA-pinned and no PR code is checked out or executed.
917
+ The caller runs on `pull_request_target`, so its YAML and local reusable
918
+ workflow come from the trusted default branch. Remote callers pin the reusable
919
+ workflow to a reviewed release SHA. In both cases the standalone policy is
920
+ fetched from that exact `job.workflow_sha`; no policy override reads a mutable
921
+ branch or PR revision. Before this change reaches the default branch, the new
922
+ trusted caller does not run. Configure an Actions event policy permitting
923
+ `pull_request_target` where required; GitHub's default public-repository policy
924
+ is scheduled for enforcement on December 2, 2026. See
925
+ [GitHub's trusted-trigger guidance](https://docs.github.com/en/actions/reference/security/securely-using-pull_request_target).
926
+
927
+ Migration: replace the **entire** copied `dependabot-auto-merge.yml` with the
928
+ caller above. Retain `synchronize` and the PR-author-only caller guard. Other
929
+ PR automation keeps its own merge requests; a foreign push to a Dependabot PR
930
+ still runs because the PR author remains Dependabot. An actor guard on the
931
+ calling job would skip that foreign push and prevent revocation.
932
+ Keep `auto_merge_enabled` out of the caller's event types: a custom token's arm
933
+ event belongs to its automation account and would immediately revoke its own
934
+ request under the strict Dependabot actor policy.
935
+ Remove any other workflow that arms Dependabot auto-merge, and clear existing
936
+ requests when adopting the caller; installing a workflow does not retroactively
937
+ trigger it for every open PR. This repository uses the supported local path.
938
+
939
+ Keep the scheduled audit job when adopting the caller. GitHub can suppress
940
+ workflow-generated events or park their `pull_request` runs awaiting approval;
941
+ changing only the PR trigger does not establish an independent revocation path.
942
+ The daily schedule and manual dispatch audit every armed Dependabot PR,
943
+ including every page of its commits, with the same provenance validator used to
944
+ arm. Unsafe or unverifiable snapshots are revoked; valid requests are preserved.
945
+ Fleet callers must not schedule the audit more often than hourly; prefer daily
946
+ plus `workflow_dispatch` to preserve shared runner capacity. Stagger daily run
947
+ times across repositories. Use manual dispatch when an immediate sweep is needed.
948
+ Audits never arm requests or depend on PR actor/metadata. Listing, policy-load
949
+ or revocation failures fail visibly. Scheduled runs can be delayed or disabled
950
+ by GitHub, so this is eventual revocation and requires operational monitoring,
951
+ not an atomic merge guard. See [GitHub's token event rules](https://docs.github.com/en/actions/concepts/security/github_token).
952
+
953
+ GitHub auto-merge is asynchronous. This workflow verifies the head it arms and
954
+ revokes on subsequent events; it cannot atomically prevent GitHub merging a
955
+ later push before the next workflow runs. A literal guarantee for future
956
+ commits also needs server-enforced branch protection/review requirements that
957
+ remain unsatisfied for unreviewed commits. Do not treat an earlier successful
958
+ policy run as approval of a later head.
959
+
824
960
  ## Self-versioned workflows and Dependabot
825
961
 
826
- Both reusable workflows resolve their own **exact** pm-github release version at
962
+ The sync and closeout reusable workflows resolve their own **exact** pm-github release version at
827
963
  runtime and verify the installed package version. GitHub's documented
828
964
  [`job.workflow_sha`](https://docs.github.com/en/actions/reference/workflows-and-actions/contexts#job-context)
829
965
  is the commit of the workflow that defines the current job, including a reusable
@@ -885,8 +1021,8 @@ The group pattern is the repository name, covering both reusable workflow paths.
885
1021
  Use exactly `pm-toolchain`: the fleet's existing
886
1022
  [dependabot-auto-merge.yml](.github/workflows/dependabot-auto-merge.yml) enables
887
1023
  `gh pr merge --auto --squash` for Dependabot PRs in that group, including calendar
888
- version major changes. The workflow checks the Dependabot author and repository
889
- owner, then the metadata group or minor/patch update type. Commit prefix and
1024
+ version major changes. The workflow checks the Dependabot author, then the
1025
+ metadata group or minor/patch update type. Commit prefix and
890
1026
  labels do not control merge eligibility; the explicit values above keep PRs
891
1027
  consistent. Ensure the two labels exist (GitHub ignores unknown custom labels).
892
1028
  Repository auto-merge must be enabled and required branch-protection checks must
@@ -897,7 +1033,7 @@ for schedules, groups, commit messages and labels.
897
1033
 
898
1034
  ## Automated closeout workflow
899
1035
 
900
- For scheduled failures, see the [run evidence and refusal guide](docs/scheduled-workflow-refusals.md).
1036
+ For scheduled failures, start with the [November 6 watch matrix and caller actions](docs/scheduled-workflow-watch-1106.md). The [historical run evidence and refusal guide](docs/scheduled-workflow-refusals.md) retains earlier incident context.
901
1037
  Both maintenance workflows select one actionable reason from private command
902
1038
  receipts and privacy-scan it before emitting an error annotation. Closeout
903
1039
  accepts GitHub's numeric pagination aliases only after verifying repository
@@ -1185,7 +1321,23 @@ Release attribution uses the actual dates of locally available calendar tags, in
1185
1321
 
1186
1322
  Before creating an item, import checks the complete tracker for its provenance tag, GitHub URLs in provenance or link metadata, and Linear/Jira/ADO links referenced by the GitHub issue body. A unique existing external owner receives the GitHub tag and source metadata; its title, body, provider identity, creation/completion dates and release remain intact. A persisted `github_link_only` marker preserves that ownership on subsequent syncs. Free-text descriptions and bodies do not declare GitHub ownership. Ambiguous matches refuse the import before writes with `--gate` or `--atomic`. A plain multi-issue import may write earlier issues before rejecting a later ambiguous match.
1187
1323
 
1188
- With `--gate` and a nonempty filtered issue list, both preview and apply results include a `plan` with source dates, closure reason, release, target identity, link/create/update action and state-conflict decision. An empty filtered issue list returns without a `plan`, including with `--gate --dry-run`. GitHub wins lifecycle conflicts for GitHub-owned imports. A canceled item that GitHub later reports as completed uses the SDK's explicit repeat-closure transition with the source reason. A linked external owner keeps its local status, and the plan records `preserve-provider-owner`; `github_state` still records the source state. Atomic transaction identity includes the latest external edit or different lifecycle generation in history. Local state edits and repeated state cycles force reconciliation, while staging and compensation keep crash retries on the same journal. Finalization runs before the SDK commits and is compensated with the batch on failure. It is idempotent and runs again after a recovered atomic journal, so an interrupted finalization can be repaired by retrying the same import before the gate permits a push.
1324
+ With `--gate` and a nonempty filtered issue list, both preview and apply results include a `plan` with source dates, closure reason, release, target identity, link/create/update action and state-conflict decision. An empty filtered issue list returns without a `plan`, including with `--gate --dry-run`. GitHub wins lifecycle conflicts for GitHub-owned imports. A canceled item that GitHub later reports as completed uses the SDK's explicit repeat-closure transition with the source reason. A linked external owner keeps its local status, and the plan records `preserve-provider-owner`; `github_state` still records the source state. Atomic transaction identity includes the latest external edit or different lifecycle generation in history. Local state edits and repeated state cycles force reconciliation, while staging and compensation keep crash retries on the same journal. Finalization runs before the SDK commits; its compensation has the known SDK limitation below. It is idempotent and runs again after a recovered atomic journal, so an interrupted finalization can be repaired by retrying the same import before the gate permits a push.
1325
+
1326
+ **Known limitation — atomic lifecycle finalization:** On pm-cli ≥ 2026.10.26
1327
+ without transaction-owned finalization ([pm-cli#1656](https://github.com/unbraind/pm-cli/issues/1656)),
1328
+ a failure after lifecycle finalization can leave partially applied state. The
1329
+ SDK ownership guard refuses unsafe compensation; the recovery journal resumes
1330
+ when the same import is retried. Complete rollback after this boundary is not
1331
+ currently guaranteed. See [the SDK finalization analysis](docs/atomic-finalization-sdk.md).
1332
+
1333
+ Exactly two tests are quarantined on the verified affected SDK pin, 2026.11.4:
1334
+ `real SDK atomic compensation restores an imported source lifecycle and removes new items after finalization`
1335
+ in `test/import-fidelity.test.ts`, and
1336
+ `terminal failures remove replay plans after real SDK compensation (true)` in
1337
+ `test/refresh.test.ts`. Their compensation assertions remain intact and
1338
+ re-enable automatically on any other installed SDK version. The fresh-invocation
1339
+ refresh case still runs. Repository fixture-version tests verify both actual
1340
+ quarantine predicates and skip options without installing SDK versions.
1189
1341
 
1190
1342
  An atomic apply whose complete normalized source projection already matches every item
1191
1343
  reports `unchanged: true`, zero imports/updates, and no transaction ID. It leaves
package/dist/gate.d.ts CHANGED
@@ -148,6 +148,8 @@ interface RuleHit {
148
148
  readonly matched: string;
149
149
  /** Character offset of the match within its line, for jsonl field attribution. */
150
150
  readonly index: number;
151
+ /** Exclusive source end offset, including every encoded character in the match. */
152
+ readonly end: number;
151
153
  }
152
154
  /**
153
155
  * Scan one added line with every content rule.
@@ -1 +1 @@
1
- {"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../gate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gate.d.ts","sourceRoot":"","sources":["../gate.ts"],"names":[],"mappings":"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"}