Repository navigation
Session Handoff [default]: KiCadLibrary Standup Finished as 2.1.49, LF Conversion Ordered and Released as 2.0.810 #2328
Description
Next steps, in priority order
Re-read each issue and pull request rather than trusting these summaries.
-
Hub follow-ups, each its own small pull request:
- The Publisher Stub's Shared Concurrency Group Lets a No-Op Push Replace a Pending Dispatch #2300: the publisher stub's shared concurrency group.
- Document the File-Target Caller Variant of the Release Chain and Drop the Branch-Matrix Trigger Shape #2301: the file-target caller variant docs and the stale branch-matrix sentence.
- The Hooks Rollout Still Lists Blog as Doc-Gate Only #2302: the hooks rollout's Blog row.
- Retire or Narrow TODO.md's Blog * -text Entry Now That Blog Carries the Fleet Default #2325: retire or narrow
TODO.md's Blog* -textentry. Blog'smainnow carries the fleet default. - pr_review.py Counts a Check Run a Rerun on the Same Head Superseded #2327:
pr_review.pycounts a check run that a rerun on the same head superseded. - Test hub-fetch-run.py's Unborn-HEAD Rewrite and Its Probe-Failure Path #2321: tests for
hub-fetch-run.py's unborn-HEAD rewrite and its probe-failure path. - hub-fetch-run.py Runs the Gate From a Temporary File, So the Fleet's Own Documented Local Route Reports gate unknown on Every Run #1421:
hub-fetch-run.pyruns the gate from a temp file, so it reportsgate unknown. - A comments Label Applied by gh pr create Misses the Event That Starts the First Run #1703: the
commentslabel race, which hit again on ptr727/KiCadLibrary#70 (label 2 seconds after create).
Done means each merged to
developand promoted. -
The six repositories from Session Handoff [default]: Table Carry, Quota Safety and install-tools Shipped to Develop, Defined-Moments Review Gate #2278 Ready #2281: EspDinIoT, DevKitCIoT, HomeAssistant-Config, PhotoCleaner, AudioCleaner and HolidayLights. Audit each one before choosing a procedure. Each needs a fresh write grant.
- EspDinIoT, DevKitCIoT, AudioCleaner and HolidayLights still need the LF conversion, per
docs/eol-lf-rollout.md"Per-Repo Conversion", which now states the trigger and the ordered steps. Their checklist rows say what each one lacks. - The conversion lands first, as its own pull request, then the resync or standup is based on
develop.
- EspDinIoT, DevKitCIoT, AudioCleaner and HolidayLights still need the LF conversion, per
-
KiCadLibrary's hooks rollout box.
docs/pre-commit-hooks-rollout.mdticks a box only once a committed hub audit recordsparity.hooksoperational. KiCadLibrary's.pre-commit-config.yamlis onmain(ptr727/KiCadLibrary#70), so a hub-side audit report underreports/is what unblocks the tick. -
Carried from Session Handoff [default]: configure.sh Refuses Unknown Arguments, Released as 2.0.805 #2289: the rest of Every CLI Script Answers --help and Refuses Unknown Arguments Before Writing #2285, Audit Cross-Checks No Python Dependabot Ecosystem, and KiCadLibrary's requirements-dev.txt Is Untracked #2286's audit check, Run the Whole Test Suite Before a Push, Not the Modules a Change Touches #2280, Fix STANDUP.md's Prerequisite Item That Says Mechanisms Declare Environments #2270, and the items Session Handoff [default]: Table Carry, Quota Safety and install-tools Shipped to Develop, Defined-Moments Review Gate #2278 Ready #2281 carried from Session Handoff [default]: Fork Handoff Chains Released as 2.0.799, #2268 Fix on Develop #2273.
External blockers
-
KiCadLibrary secrets.
CODEGEN_APP_CLIENT_ID,CODEGEN_APP_PRIVATE_KEYandCODECOV_TOKENare missing from both its Actions and Dependabot stores. Only the maintainer can add them. Until then:- every Dependabot merge fails at the app-token step
- coverage uploads skip
- the audit reports six secret defects.
Its open Dependabot PRs, Pin release action SHA, target_commitish, agent conventions #61 and Add set -euo pipefail to multi-line workflow run blocks #68 into
developand Update codegen files #67 and Fix README bullet formatting and correct PyPI publish action SHA #69 intomain, wait on this. -
CodeRabbit on KiCadLibrary was rate-limited for every round again, so Copilot was the only reviewer.
-
A native Windows host is needed for the
bootstrap.ps1check, carried from Session Handoff [default]: WORKFLOW.md Corrections and the pyproject.toml Decision Released as 2.0.672 #1804.
Internal dependencies
- Steps 1 and 2 are independent. The procedure fix (Order the LF Conversion Before Carrying LF Files Into a CRLF-Default Repository #2290) has landed, so the LF conversions run against written rules.
- From Session Handoff [default]: Table Carry, Quota Safety and install-tools Shipped to Develop, Defined-Moments Review Gate #2278 Ready #2281: Deny the Remaining core.hooksPath and no-verify Bypass Routes in the Guard #2177 follows or absorbs the
auto-2112heredoc work, and Decide How the Unattended Picker Recognizes an Adopted Lesson #2183 comes before Close the Unattended Loop's Parking-Comment and Interrupted-Park Gaps #2184.
State
- Hub:
mainis at0b7cba3, released as 2.0.810. It carries Deny a Signal-0 timeout as a Wait Bound in the Guard #2117, Order the LF Conversion Before Carrying Files Into a CRLF-Default Repository #2322 and Record KiCadLibrary's Hub Workflow Adoptions Now That main Carries Them #2324.developholds the same content.- There are no open hub pull requests. The primary checkout is on
develop, current and clean. - This session left no worktree or feature branch. Re-derive with
git worktree list. - This machine's Skills snapshot reads current at
0b7cba3.
- KiCadLibrary:
mainis ate2b3b29, through promotion Standardize bots on GitHub App token, align merge methods, version PyPI via NBGV #71, released as 2.1.49 withptr727-KiCadLibrary-2.1.49.zip.python3 spec/audit.py KiCadLibraryreports only the six secret defects and theversion.jsonintent hint. That hint is a timestamp heuristic, ande182eddchanged nothingversion.jsondepends on.- Its primary clone sits on
main, behind. It is the maintainer's surface and was not touched.
- Unattended lanes untouched:
auto-2176,auto-2167,auto-2157,auto-2080andpython-contract. Re-derive withhandoff.py tracks. - Other repositories written: KiCadLibrary only:
- pull requests Standardize bots on GitHub App token, align merge methods, version PyPI via NBGV #70 and Standardize bots on GitHub App token, align merge methods, version PyPI via NBGV #71
- review-thread replies and resolves
- one close-and-reopen of Standardize bots on GitHub App token, align merge methods, version PyPI via NBGV #70 to clear the label race
- the release dispatch.
The parked decision queue
Zero issues carry the decision label in ProjectTemplate or KiCadLibrary. This round's questions were asked as they came up and answered:
- the KiCadLibrary write grant, for this session only
- merging and releasing KiCadLibrary Standardize bots on GitHub App token, align merge methods, version PyPI via NBGV #71 and hub Promote develop to main: The LF Conversion Order, KiCadLibrary's Adoptions, and a Guard Wait Bound #2326
- two strict-review escalations past the two-round budget. Both times the answer was to fix it with one more pass.
What the last round did
- KiCadLibrary standup finished.
- ptr727/KiCadLibrary#70 added the
pre-commithooks, the pip-form VS Code tasks, the re-carried workflow contract, and the README link cleanup (Rename Library project to NuGetLibrary #62). - Standardize bots on GitHub App token, align merge methods, version PyPI via NBGV #71 promoted it, released as 2.1.49.
- ptr727/KiCadLibrary#70 added the
- Order the LF Conversion Before Carrying LF Files Into a CRLF-Default Repository #2290 settled in one change, Order the LF Conversion Before Carrying Files Into a CRLF-Default Repository #2322:
- RESYNC, STANDUP and both skills convert first.
docs/eol-lf-rollout.md"Per-Repo Conversion" is an ordered procedure, and its checklist was re-read from each repository'smain.insert_final_newline = unsetin the byte-preserve recipe.
- Record KiCadLibrary's Hub Workflow Adoptions Now That main Carries Them #2324 recorded KiCadLibrary's five hub workflow adoptions and deleted its stale driftNote.
- Hub promotion Promote develop to main: The LF Conversion Order, KiCadLibrary's Adoptions, and a Guard Wait Bound #2326, released as 2.0.810. It closed Order the LF Conversion Before Carrying LF Files Into a CRLF-Default Repository #2290 and
timeout -s 0Reads as a Bound and Delivers None #1634. - Filed: Test hub-fetch-run.py's Unborn-HEAD Rewrite and Its Probe-Failure Path #2321, Retire or Narrow TODO.md's Blog * -text Entry Now That Blog Carries the Fleet Default #2325 and pr_review.py Counts a Check Run a Rerun on the Same Head Superseded #2327.
What not to repeat
-
Ticking a rollout box from a reading of the downstream config.
docs/pre-commit-hooks-rollout.mdrequires a committed hub audit, and the local review caught a tick that skipped it. Read each tracker's own maintenance rule before ticking, since the trackers differ:reusable-workflows.mdticks on the stub plus a cleaninterfaceaudit.- The hooks tracker needs a committed report.
-
New procedure prose took 7 strict-review rounds and 4 Copilot findings, about 20 findings in all. Every round found defects in the previous round's fix, and almost every claim needed an empirical check:
git diffversus--cached--renormalizetouching only the indexgit worktree addrefusing a branch that is already checked out- attribute precedence per property
editorconfig-checkerunderinsert_final_newline = false.
Verify each git or tool claim in a scratch repository before writing it, and budget the escalations up front.
-
Trusting
pr_review.py waitright after a close-and-reopen. It returned on the superseded run's failure (pr_review.py Counts a Check Run a Rerun on the Same Head Superseded #2327). Watch the new run withgh run watchinstead. -
An unquoted heredoc around Python holding backticks. The shell ran them as commands and the edit failed silently. Quote the delimiter (
<<'PYEOF').
New learnings
- The
editorconfig-checkerbyte-preserve fact is now rule text inreferences/line-endings.md(Order the LF Conversion Before Carrying Files Into a CRLF-Default Repository #2322). - The
pr_review.pysuperseded-check behavior is filed as pr_review.py Counts a Check Run a Rerun on the Same Head Superseded #2327 rather than recorded here.
Activity
ptr727 commentedon Oct 4, 2026
Update after this link was written: the KiCadLibrary secrets blocker is cleared.
CODECOV_TOKEN,CODEGEN_APP_CLIENT_IDandCODEGEN_APP_PRIVATE_KEYto both stores.spec/audit.py KiCadLibraryat 2026-10-04T03:02:24Z (hub 0b7cba3) reports 0 defects.comment-and-doc-style/references/line-endings.md,resync-a-repoandstandup-a-reponow trail the hub. Every carrier of those files trails the hub the same way, so re-carry them with the next resync rather than one repository at a time.ptr727 commentedon Oct 4, 2026
Re-ranked by the maintainer: work these first, ahead of the body's step 1.
These are the hub issues the homeassistant-purpleair session filed while reconciling its release model with the fleet's. The maintainer's direction to that repo was to follow the fleet standard, and to file an issue only where it is genuinely special or has found a real bug. The purpleair session gave a verdict on each one (asked on 2026-10-04). It judged the older ones from their titles and its handoff ptr727/homeassistant-purpleair#403, so re-read each body before acting.
Real fleet bugs in hub tasks and snippets:
gh workflow runcan cancel a pending publish in the catalog snippet's global concurrency group,group: ${{ github.workflow }}. purpleair is deliberately keeping its group as it is until the hub fixes this.merge-bot-task.yml'sdelete-branchdoes nothing when the merge uses--auto.ref: github.refraces.Stale or defective canonical prose:
release-publish-mechanics.mdstill says a file target "is not yet expressible as a hub hook", but Add a Build-Release-Asset Hook for File Targets the Release Task Ships No Leaf For #2295 shippedbuild-release-asset.Tooling bugs:
spec/audit.pymisreports when run in a shallow hub clone.Process gaps and requests:
local-strict-reviewshould check prose and comment shape before the push. This is a feature request, so keep or close it on the hub's judgment.Candidate to close: #2312, "Settle the D4.7 Dispatch Window". The purpleair session thinks it is a reconciliation question rather than a bug. Check whether current
WORKFLOW.mdD4.7 already settles it. If it does, close it with the quote. If it does not, fix the text.Not hub work, recorded for context:
validate-task.ymlhas no axis for.docs/reusable-workflows.mdStage 2 already records this as an open design question.The rest of the body's next steps follow these, in the same order.
ptr727 commentedon Oct 4, 2026
Continued in #2350, round 48 on track
default.