Make helper activation and releases fail-safe - #103
Draft
dantraynor wants to merge 15 commits into
Draft
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
User-visible behavior
An older or newer helper no longer takes over the popup. Tailchrome keeps every advertised feature usable and shows a non-blocking release notice. Missing, disallowed, failed, stopped, reported-error, and explicitly incompatible helpers now produce distinct recovery guidance. Registration repair is promoted only after unavailable/not-allowed evidence, and diagnostic reports are generated locally from a bounded allowlist with credential-like values redacted when the user chooses to copy or export one.
The setup view uses
runtime.getPlatformInfo()for operating system and architecture selection:Failure taxonomy
helper-unavailable: native host is absent.helper-not-allowed: the browser refuses this extension access to the registered host.helper-start-failed: the browser finds the host but cannot start it.helper-stopped: a previously healthy connection closes.helper-reported-error: the helper reports a startup/protocol error.helper-incompatible: reserved for explicit future protocol evidence; version text alone never sets it.Review follow-up
Release and security gate
The candidate workflow now pins the source tag/SHA, assembles the complete asset allowlist before checksums, creates attestations, verifies macOS/Linux/Windows outputs, and retains one immutable candidate artifact. The separate publication workflow accepts only that candidate artifact ID, run attempt, tag, and checksum-manifest digest; it revalidates the bytes, refuses asset replacement, resumes a byte-identical draft, and publishes only after protected approval.
Current Windows gate status:
windows-defender-validation: configured with required reviewerdantraynor, administrator bypass disabled, and an exactv*tag policy; the approved image ID remains unset until a clean image is provisioned.windows-release-clearance: configured with required reviewerdantraynorand administrator bypass disabled; final-evidence approval remains pending.Validation completed
v0.1.13release-tag validation.go vet./t, unsigned, untimestamped, signer-mismatch, tamper, multiple-signature, embedded-payload-mismatch, and missing-payload rejection.git diff --check.a99afe2: all 15 reported checks passed, including CodeQL, workflow static validation, and the Windows signature-verifier job.Manual platform matrix
Remaining blockers
WINDOWS_DEFENDER_IMAGE_IDvalue.windows-release-clearanceapproval after the final evidence is available.This pull request must remain a draft and must not merge while any blocker above is open.