Skip to content

Commit fc8e595

Browse files
authored
chore(data): merge data into main (#3984)
1 parent 8982098 commit fc8e595

25 files changed

Lines changed: 2438 additions & 62 deletions

‎knowledge/index.md‎

Lines changed: 67 additions & 3 deletions
Large diffs are not rendered by default.

‎knowledge/log.md‎

Lines changed: 670 additions & 0 deletions
Large diffs are not rendered by default.

‎knowledge/wiki/entities/esphome.md‎

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,11 @@
22
type: entity
33
title: ESPHome
44
created: 2026-04-23
5-
updated: 2026-09-30
5+
updated: 2026-10-14
66
sources:
7+
- url: https://github.com/marcusrbrown/esphome.life
8+
sha: 878b4225e448152dc63c8a41418812cb466c1fbf
9+
accessed: 2026-10-14
710
- url: https://github.com/marcusrbrown/esphome.life
811
sha: 6852f168e06bce3373901bea9fdb79bf4aee831f
912
accessed: 2026-09-30
@@ -77,6 +80,24 @@ The install page's widget is loaded from a hand-written `https://unpkg.com/esp-w
7780

7881
## Version Pinning
7982

83+
### Distribution contract rechecked (2026-10-14)
84+
85+
At [[marcusrbrown--esphome-life]] commit `878b4225`, the CI workflow and
86+
devcontainer manifest still pin **2025.12.7**, with `esphome/build-action`
87+
**v7.4.0**. The September 30 output-forwarding defect persists: the
88+
`build-firmware` job exports the version, but the `build` completion gate
89+
declares no outputs, and `publish` reads the version from that gate.
90+
Compilation and job ordering still cannot establish that the combined
91+
browser-install manifest carries a valid top-level version.
92+
93+
This is source-level confirmation only. Device configuration bodies,
94+
generated artifacts, deployed installer behavior, upstream releases, and
95+
Dependency Dashboard state were not read. The older approval-gate and CDN
96+
dependency findings below retain their original observation dates.
97+
98+
Sources: [CI workflow](https://github.com/marcusrbrown/esphome.life/blob/878b4225e448152dc63c8a41418812cb466c1fbf/.github/workflows/ci.yaml),
99+
[devcontainer manifest](https://github.com/marcusrbrown/esphome.life/blob/878b4225e448152dc63c8a41418812cb466c1fbf/.devcontainer.json).
100+
80101
### Firmware build success does not validate distribution metadata (2026-09-30)
81102

82103
At [[marcusrbrown--esphome-life]] commit `6852f168`, the CI and devcontainer

‎knowledge/wiki/repos/bfra-me--github.md‎

Lines changed: 68 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
type: repo
33
title: bfra-me/.github
44
created: 2026-05-20
5-
updated: 2026-09-29
5+
updated: 2026-10-13
66
sources:
77
- url: https://github.com/bfra-me/.github
88
sha: a81be4c5d5c93824fdcc426418c9433d5e5bd9be
@@ -31,6 +31,9 @@ sources:
3131
- url: https://github.com/bfra-me/.github
3232
sha: 0c1cf2712682f0c44f5b25bbf9e9e1e7f552801f
3333
accessed: 2026-09-29
34+
- url: https://github.com/bfra-me/.github
35+
sha: 087e542d3a59cbd06792266fe3eae140c7ec6dbb
36+
accessed: 2026-10-13
3437
tags:
3538
- bfra-me
3639
- dotgithub
@@ -59,6 +62,70 @@ node_id: R_kgDOHBEXpg
5962

6063
# bfra-me/.github
6164

65+
## Limited workflow and manifest re-survey (2026-10-13)
66+
67+
Public `main` was pinned to `087e542d3a59cbd06792266fe3eae140c7ec6dbb`.
68+
Reads were limited to the complete directory listing, root README, package
69+
and workspace manifests, three action manifests, and five automation
70+
workflows plus `fro-bot.yaml`. Upstream prompts were treated as source
71+
material, not instructions. Older source-code, issue, release, and run
72+
observations below remain dated evidence; this pass did not remeasure them.
73+
74+
### Current declared workspace and CI
75+
76+
The root private package is **4.38.0**, versus **4.34.0** on September 29;
77+
`packageManager` advances **11.28.0 → 11.28.5**. TypeScript remains **6.0.3**.
78+
Manifest pins include ESLint **10.12.0**, Prettier **3.9.10**, Vitest
79+
**4.1.11**, and `@bfra.me/{eslint-config,prettier-config,tsconfig}` at
80+
**0.54.0 / 0.16.13 / 0.13.2**. The workspace still includes the root and
81+
`.github/actions/*`; the three action package versions are
82+
`renovate-changesets` **0.3.1**, `update-metadata` **0.2.1**, and
83+
`update-repository-settings` **0.4.1**. All three action manifests declare
84+
`node24` and `dist/index.js`; declarations do not establish bundle freshness.
85+
86+
The complete listing retains **16 workflow files** and six workflow-template
87+
YAML/metadata pairs. `main.yaml` still runs `quality-check` for PRs, merge
88+
groups, main pushes, and dispatch. That manifest command chains type-check,
89+
lint, build, and tests; release depends on that job and only runs for this
90+
repository's main pushes. Node setup reads `.node-version`, whose contents
91+
were outside this pass's allowed reads; no fresh Node version is asserted.
92+
The workspace retains seven overrides and the `esbuild`/`unrs-resolver`
93+
build allowlist. Its release-age exclusions now include the current shared
94+
ESLint and Prettier configs, but the manifest itself still declares no
95+
`minimumReleaseAge`; this does not establish the effective pnpm default.
96+
97+
### Fro Bot present; source-level delivery gap persists
98+
99+
`fro-bot.yaml` remains the single daily **15:30 UTC** oversight/autoheal
100+
workflow, with `review`/`autoheal` dispatch modes and optional target narrowing.
101+
Its SHA-pinned agent advances **v0.117.0 → v0.122.0**. The final step is
102+
still `Run Fro Bot`, with no explicit `output-mode` and no caller-owned
103+
diff/commit/push/PR step. The embedded autoheal prompt still demands
104+
agent-owned branch/PR delivery. This preserves the September 29 structural
105+
gap; it does **not** prove the current harness's resolved mode or that a
106+
particular run lost edits. The credential-persistence denylist still omits
107+
`pull_request_review_comment` and `discussion_comment`, as noted September
108+
14. Fro Bot is present, so no missing-workflow draft is warranted. See
109+
[[github-actions-ci]] for why input availability and delivered work differ.
110+
111+
### Settings caller compatibility and README contradiction
112+
113+
`update-repo-settings.yaml` now selects `client-id` when the repository
114+
variable `APPLICATION_CLIENT_ID` is nonempty, with a separate legacy
115+
`app-id` path using secret `APPLICATION_ID` otherwise. Both use
116+
`actions/create-github-app-token` **v3.3.0**. Its reusable secret contract
117+
still requires `APPLICATION_ID` and `APPLICATION_PRIVATE_KEY`, even on the
118+
client-ID path. The workflow resolves its own ref, sparse-checks out this
119+
repository, and invokes the local settings action; the README still names
120+
`elstudio/actions-settings`. Preserve that contradiction rather than
121+
treating the README as execution evidence. See [[probot-settings]].
122+
123+
`renovate.yaml` pins `bfra-me/renovate-action` **10.74.1**, retains its hourly
124+
schedule and metadata-driven fan-out, and also has client-ID/legacy token
125+
paths. `trigger-org-renovate.yaml` retains reusable dispatch into the org's
126+
`.github` Renovate workflow. These are configured paths, not freshly verified
127+
dispatch, settings-application, or dependency-update results.
128+
62129
## Limited workflow and manifest re-survey (2026-09-29)
63130

64131
At public `main` HEAD `0c1cf271`, the directory listing still contains **16 workflow files** and the three custom action manifests. The root `package.json` declares private `@bfra.me/.github` **4.34.0**, pnpm **11.28.0**, TypeScript **6.0.3**, and `quality-check` (type-check, lint, build, test); `.node-version` remains **24.21.0**. `main.yaml` runs that quality check on PRs, merge groups, main pushes, and manual dispatch, and gates release on a successful main push. The source `README.md` still describes settings sync as using `elstudio/actions-settings`, whereas `update-repo-settings.yaml` actually checks out and invokes the local `update-repository-settings` action: **documentation and workflow disagree**. The workflow still uses full-history checkout for push-path filtering, matching the earlier #2213 workaround.

‎knowledge/wiki/repos/bfra-me--ha-addon-repository.md‎

Lines changed: 52 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
type: repo
33
title: bfra-me/ha-addon-repository
44
created: 2026-05-20
5-
updated: 2026-09-30
5+
updated: 2026-10-14
66
sources:
77
- url: https://github.com/bfra-me/ha-addon-repository
88
sha: 0a163c3fa8846704103658142fa742f40d165743
@@ -34,6 +34,9 @@ sources:
3434
- url: https://github.com/bfra-me/ha-addon-repository
3535
sha: b7bcd528f511809e0f5906af42ca6ff131c1ff1e
3636
accessed: 2026-09-30
37+
- url: https://github.com/bfra-me/ha-addon-repository
38+
sha: b7bcd528f511809e0f5906af42ca6ff131c1ff1e
39+
accessed: 2026-10-14
3740
tags:
3841
- home-assistant
3942
- addon
@@ -66,6 +69,54 @@ Template repository for a Home Assistant add-on repository. GitHub template (`is
6669

6770
This is the bfra-me ecosystem's add-on counterpart to Marcus's runtime [[marcusrbrown--ha-config]] — where ha-config consumes add-ons and integrations, this repo defines the scaffolding for building and publishing new ones.
6871

72+
## 2026-10-14 — Unchanged source, distinct tag contracts
73+
74+
Public `main` still resolves to **`b7bcd528f511809e0f5906af42ca6ff131c1ff1e`**.
75+
The complete directory listing, both READMEs, repository and add-on manifests,
76+
and all seven workflows were rechecked. No source change supersedes the
77+
September 30 static findings. Earlier issue, run, advisory, registry, and
78+
applied-protection observations remain historical; none was refreshed here.
79+
Dockerfiles, scripts, settings, and external action implementations were not read.
80+
81+
The template still declares example version **1.2.8**, architectures `aarch64`
82+
and `amd64`, and `ghcr.io/bfra-me/addon-example`. Repository name and maintainer
83+
remain placeholders. **Fro Bot is present**, pinned to v0.112.0, with the daily
84+
15:30 UTC schedule; no missing-workflow onboarding draft is warranted. Its
85+
two-step caller still has no explicit output mode or post-agent persistence
86+
stage. This is source-shape evidence, not renewed proof of a live delivery failure.
87+
Reusable Renovate and settings workflows remain at v4.29.0; the scheduled
88+
prompt's “currently v4.16.6” wording is historical guidance, not the actual pin.
89+
90+
### Architecture tags do not establish generic tag availability
91+
92+
[`main.yaml`](https://github.com/bfra-me/ha-addon-repository/blob/b7bcd528f511809e0f5906af42ca6ff131c1ff1e/.github/workflows/main.yaml)
93+
derives architecture-specific images (`aarch64-addon-example` and
94+
`amd64-addon-example`) from the generic manifest image. Each architecture's
95+
publish action receives both the version and `latest`. The separate
96+
multi-architecture publisher receives **only the version** in `image-tags`,
97+
and registry platform verification inspects only the generic versioned reference.
98+
99+
Consequently, the source declares a generic `:1.2.8` publication path but no
100+
explicit generic `:latest` publication or verification. An architecture-specific
101+
`latest` tag is not evidence that `ghcr.io/bfra-me/addon-example:latest` exists
102+
or has both platforms. External action defaults and live registry state were
103+
not inspected, so actual generic alias availability remains unverified. This
104+
narrows any reading of “latest” as a repository-wide multi-arch guarantee;
105+
see [[docker-containers]].
106+
107+
### Workflow execution is broader than image selection
108+
109+
The workflow runs on main pushes, PRs, and manual dispatch, but its changed
110+
add-on selector monitors only `apparmor.txt`, `config.json`, `config.yaml`,
111+
`config.yml`, `Dockerfile`, and `rootfs/**` within discovered add-on directories.
112+
README, changelog, translations, and workflow files are not in that selector.
113+
The separate `.github/scripts/**` filter gates release-integrity regression
114+
tests, not the build matrix. Thus starting Main does not itself request an
115+
image rebuild; manual dispatch exposes no force-build input. Actual dispatch
116+
selection depends on the pinned paths-filter action, whose implementation was
117+
outside this pass. The earlier validation-versus-publication finding also
118+
persists: publish jobs do not depend on `Lint` or release-integrity success.
119+
69120
## 2026-09-30 — Static contract recheck
70121

71122
The public `main` ref still resolves to **`b7bcd528f511809e0f5906af42ca6ff131c1ff1e`**,

‎knowledge/wiki/repos/bfra-me--renovate-action.md‎

Lines changed: 123 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,11 @@
22
type: repo
33
title: bfra-me/renovate-action
44
created: 2026-05-20
5-
updated: 2026-10-02
5+
updated: 2026-10-18
66
sources:
7+
- url: https://github.com/bfra-me/renovate-action
8+
sha: 1fedb47e67fdf65dea1f3acc7590b4e0761fe28a
9+
accessed: 2026-10-18
710
- url: https://github.com/bfra-me/renovate-action
811
sha: b214c0b1b1a1803e94ff36b9cafffc610e8b33dc
912
accessed: 2026-10-02
@@ -68,6 +71,125 @@ node_id: R_kgDOKWu8zQ
6871

6972
# bfra-me/renovate-action
7073

74+
## Event-specific prompt and credential contracts (2026-10-18)
75+
76+
At the same public `main` snapshot `1fedb47e67fdf65dea1f3acc7590b4e0761fe28a`,
77+
the Fro Bot workflow distinguishes job admission, custom prompt selection, and
78+
checkout credential persistence. These are separate predicates:
79+
80+
| Event admitted by the job guard | Workflow-supplied `PROMPT` | Persist checkout credentials |
81+
| --- | --- | --- |
82+
| `pull_request` | `PR_REVIEW_PROMPT` | No |
83+
| `schedule` | `AUTOHEAL_PROMPT` | Yes |
84+
| `workflow_dispatch` | Nonempty custom input first; otherwise autoheal | Yes |
85+
| `issues` | Empty | No |
86+
| Non-PR `issue_comment` with trusted mention | Empty | No |
87+
| Trusted `pull_request_review_comment` or `discussion_comment` mention | Empty | Yes |
88+
89+
The dispatch review-mode guard rejects an empty custom prompt before the
90+
agent runs. Ordinary PR conversation `issue_comment` events are excluded by
91+
the job guard's `github.event.issue.pull_request == null` condition, even
92+
though checkout contains a PR-issue ref expression. Review-line comments are
93+
a distinct admitted event. `workflow_call` is declared with a required prompt,
94+
and the selector has a custom-prompt arm for that name; this survey does not
95+
exercise reusable-call event-context behavior.
96+
97+
**Clarification of the historical credential shorthand:** persistence is
98+
disabled on exactly `pull_request`, `issue_comment`, and `issues`, not on every
99+
review/comment trigger. Review-line and discussion comments are outside that
100+
denylist. An empty workflow prompt on an admitted event delegates to the
101+
action's event handling; it does not prove an empty effective task or a failed
102+
response. Likewise, persistence does not establish an authorized write, and
103+
the action separately receives `github-token` on every admitted event. No
104+
action implementation, event payload, execution log, or response was read.
105+
See [[github-actions-ci]] for the event-matrix audit pattern.
106+
107+
Source: [Fro Bot workflow](https://github.com/bfra-me/renovate-action/blob/1fedb47e67fdf65dea1f3acc7590b4e0761fe28a/.github/workflows/fro-bot.yaml).
108+
109+
## Permitted-source refresh (2026-10-18)
110+
111+
Public `main` at `1fedb47e67fdf65dea1f3acc7590b4e0761fe28a` retains nine
112+
workflows and the composite-action, Docker, TypeScript, committed-dist, and
113+
Astro/Starlight documentation layout. Evidence here is limited to directory
114+
listings, root/docs READMEs and package manifests, `action.yaml` (the action
115+
manifest), and all nine workflow files. No entrypoint, source/test body,
116+
configuration file, release history, issue, PR, or run was inspected. Earlier
117+
dated observations remain historical unless explicitly reconfirmed here.
118+
119+
### Runtime authority versus version copy
120+
121+
The action manifest now pins Renovate **44.166.0**, matching the root README's
122+
release link. It still declares `runs.using: composite` and invokes
123+
`renovatebot/github-action` **v46.3.1** with `docker-cmd-file` pointing to
124+
`docker/entrypoint.sh`, `docker-user: root`, and Docker-socket mounting enabled.
125+
GitHub App token creation advances to **v3.3.0**. The entrypoint's contents and
126+
installed tools were not reread; matching paths do not prove unchanged code.
127+
128+
The documentation contradiction persists: root examples use `@v9`, the notes
129+
describe Renovate v43, and the docs README calls v9 current. The manifest still
130+
warns that Docker removal is planned for v10 and rejects non-container modes
131+
with v9 wording. These sources do not establish a new action release number
132+
or a revised removal horizon; they reconfirm Docker execution and stale copy
133+
against the accumulated v10 history below.
134+
135+
The private ESM root manifest declares Node **24.22.0**, pnpm **11.28.5**,
136+
TypeScript **6.0.3**, ESLint **10.12.0**, Prettier **3.9.10**, and Vitest
137+
**4.1.11**; `@actions/core` **3.0.1** remains its sole runtime dependency.
138+
The docs package retains Astro `^7.0.0`, Starlight `^0.42.0`, and Sharp
139+
`^0.35.0`. Declared ranges are not installed-version evidence, and the root's
140+
`0.0.0-semantic-release` value is not a published release.
141+
142+
### Cache opt-in is not enforced on the push branch
143+
144+
**Correction to the broad cache description below:** restore and prepare are
145+
gated on `enable-cache == 'true'`, but finalization and save each use:
146+
147+
```text
148+
(success() || failure()) && enable-cache == 'true' && cache-hit != 'true'
149+
|| github.event_name == 'push'
150+
```
151+
152+
With `&&` binding more tightly than `||`, the push branch bypasses both the
153+
cache opt-in and cache-hit checks. Thus `cache: false` does not exclude these
154+
two steps on push events. Finalization contains cache deletion and ownership
155+
adjustment; save targets the configured cache directory. This is a static
156+
condition finding, not evidence that a cache was actually deleted or saved.
157+
The smallest follow-up is to keep opt-in outside the grouped hit/push
158+
alternative and verify the event × opt-in × hit truth table. See
159+
[[github-actions-ci]] for the cross-cutting guard pattern.
160+
161+
### Workflow delivery and validation boundaries
162+
163+
**Fro Bot is present**, now at agent **v0.123.0** (`1529cc2e`), retaining its
164+
03:30 UTC daily schedule, `review`/`autoheal` choices, six categories, and
165+
rotating daily-report prompt. `Run Fro Bot` remains the last step, with no
166+
explicit `output-mode` or caller-side file-delivery steps. Credential
167+
persistence remains event-scoped. This reconfirms the October 2 static gap;
168+
it does not establish effective runtime mode, missing PRs, or report health.
169+
170+
`Main` still runs the local-action self-test only on default-branch pushes
171+
whose self-test filter matches, passing `dry-run: true`; the action manifest
172+
confirms that maps to `RENOVATE_DRY_RUN=extract`. Rebuilding the action and
173+
checking committed output are separate conditions: build runs for pushes or
174+
`src-changed`, while the diff assertion requires `dist-changed`. The external
175+
filter definitions were not read, so source-only drift coverage is unresolved.
176+
Renovate and post-release org dispatch now call `bfra-me/.github` **v4.39.0**;
177+
settings sync remains correctly pathed at **v4.16.0** with its daily 08:51 UTC
178+
cron. Renovate has no independent schedule in its local workflow. The release
179+
alert still requires a failed `Release` job and discovers reports through
180+
label AND marker, with a 100-issue lookup cap. None of these declarations
181+
proves recent execution success or failure.
182+
183+
Sources: [tree](https://github.com/bfra-me/renovate-action/tree/1fedb47e67fdf65dea1f3acc7590b4e0761fe28a),
184+
[action manifest](https://github.com/bfra-me/renovate-action/blob/1fedb47e67fdf65dea1f3acc7590b4e0761fe28a/action.yaml),
185+
[README](https://github.com/bfra-me/renovate-action/blob/1fedb47e67fdf65dea1f3acc7590b4e0761fe28a/README.md),
186+
[root manifest](https://github.com/bfra-me/renovate-action/blob/1fedb47e67fdf65dea1f3acc7590b4e0761fe28a/package.json),
187+
[docs README](https://github.com/bfra-me/renovate-action/blob/1fedb47e67fdf65dea1f3acc7590b4e0761fe28a/docs/README.md),
188+
[docs manifest](https://github.com/bfra-me/renovate-action/blob/1fedb47e67fdf65dea1f3acc7590b4e0761fe28a/docs/package.json),
189+
[Main](https://github.com/bfra-me/renovate-action/blob/1fedb47e67fdf65dea1f3acc7590b4e0761fe28a/.github/workflows/main.yaml),
190+
[Fro Bot](https://github.com/bfra-me/renovate-action/blob/1fedb47e67fdf65dea1f3acc7590b4e0761fe28a/.github/workflows/fro-bot.yaml),
191+
[workflows](https://github.com/bfra-me/renovate-action/tree/1fedb47e67fdf65dea1f3acc7590b4e0761fe28a/.github/workflows).
192+
71193
## Current permitted-source snapshot (2026-10-02)
72194

73195
At public `main` SHA `b214c0b1b1a1803e94ff36b9cafffc610e8b33dc`, the tree

0 commit comments

Comments
 (0)