Skip to content

fix(drivers): one id per driver, from the bundled copy to the channel - #1429

Merged
frahlg merged 5 commits into
masterfrom
fix/one-id-drivers-pinned
Sep 25, 2026
Merged

frahlg merged 5 commits into
masterfrom
fix/one-id-drivers-pinned

Conversation

@frahlg

@frahlg frahlg commented Sep 25, 2026 •

Copy link
Copy Markdown
Member

Item 1 of #1423: one id and one version per driver, with no special identity rules.

What changes

Effect on other systems

  • The driver inventory sent to Nova reports the catalog ids, as the owner approved.
  • esphome-dsmr stays a separate catalog entry in device-drivers, so sites that installed it keep getting updates.
  • feat(drivers): one place to see and choose a driver version #1427 (one place for versions) depends on this PR. Without it, the Versions list finds no signed versions for drivers whose ids used to be spelled differently.

Review

Evidence

  • go test passes for internal/drivers, internal/api, internal/driverrepo and cmd/ftw with the bundled set at bcf4683.
  • sync-bundled-drivers.sh --check passes.

🤖 Generated with Claude Code

https://claude.ai/code/session_01MuerPFZFG88kgu8sWVHeq7

frahlg and others added 3 commits September 25, 2026 08:59
Moves the pin to srcfl/device-drivers#132, where every driver's DRIVER
table states the catalog id and version. FTW's identity rule for the
old spellings (IdentifiesSameDriver) goes: a bundled copy and a channel
artifact are the same driver when their ids are equal.

- Catalog tests look drivers up by the catalog ids.
- The recovery-snapshot provenance test for esphome_dsmr is gone: the
  bundled file is now the driver's source, and sync-bundled-drivers.sh
  --check already binds every bundled file to the pinned commit.
- setup.js recognises the Zap driver by its id `zap`.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MuerPFZFG88kgu8sWVHeq7
drivers-stable only serves installs that read the channel (1.x-3.x) and
the stable rows of the Versions list; 0.x runs the drivers its release
bundles. Promoting it is one existing command after a stable Core
release, not new automation. The proposal to promote it with Core goes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MuerPFZFG88kgu8sWVHeq7
Moves the pin to bcf4683, srcfl/device-drivers#132 as merged on main,
instead of the branch commit it was tested against before its rebase.
The changeset no longer says esphome-dsmr is gone: #132 keeps that
catalog entry for sites that installed it. The stable promotion step
says what to do when main has moved past drivers-beta.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MuerPFZFG88kgu8sWVHeq7
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 25, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-09-25T07:34:26.588647Z 3f9d928 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 3f9d928487

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread AGENTS.md
Comment on lines +192 to +194
It promotes the driver commit already published as `drivers-beta`. If it
refuses because `main` has moved past `drivers-beta`, publish beta first
(`-f channel=beta`), then promote.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Promote only the validated driver beta

When main has advanced since the Core beta was tested, this fallback republishes the newer main commit to drivers-beta and then immediately promotes it, so drivers-stable can receive driver code that was neither included in nor validated with the stable Core candidate. Do not instruct an immediate promotion here; the exact driver beta being promoted must complete the required validation first.

AGENTS.md reference: AGENTS.md:L167-L170

Useful? React with 👍 / 👎.

Matches #1428: a newer release driver runs over an early selection
without discarding it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MuerPFZFG88kgu8sWVHeq7
srcfl/device-drivers#134 puts esphome_dsmr's host API fields on their
own lines; FTW reads DRIVER fields line by line and its publication
check refused the 1.0.4 file. The bundled set now publishes cleanly.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MuerPFZFG88kgu8sWVHeq7
@frahlg
frahlg merged commit fe0a02d into master Sep 25, 2026
15 checks passed
@frahlg
frahlg deleted the fix/one-id-drivers-pinned branch September 25, 2026 08:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant