Repository navigation
release: 0.30.0 - #377
Merged
Merged
release: 0.30.0#377
Conversation
Four security fixes have been sitting on main unpublished, since release.yml triggers on paths: [src/sk/__init__.py] and no bump happened. PyPI users were still on 0.29.0-era handling: - 71881e7 ~/.sidekick is now 0700 dirs / 0600 files - bc5ce0f API keys are masked as **** rather than first3...last4 - ff5b5e9 the egress allowlist is enforced on every redirect hop - 8200f58 PreToolUse hooks fail closed; silent writes are reported ff5b5e9 is the one that matters most: allowlist a host you trust, let it 302 anywhere, and the agent fetched the target and returned the content to the model. That is the threat #328 exists to stop, and docs/egress.md already claimed both checks ran on every hop. ROADMAP records the release and Next points at 0.31.0, per the checklist in CONTRIBUTING.md. The AUR pkgver assertion is relaxed from strict equality to 'not ahead, and not more than one minor behind'. Strict equality was wrong, not just inconvenient: the pinned sdist must exist on PyPI, and a release bump necessarily lands before AUR is repinned, so it would fail every release PR for a lag that is correct at that moment. It still catches the three-release drift it was written for, and both directions are tested. 1389 passed, ruff clean, coverage 79.89%.
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.
Publishing 0.30.0
Four security fixes have been sitting on
mainunpublished, becauserelease.ymltriggers onpaths: [src/sk/__init__.py]and no bump ever happened. PyPI users were still on 0.29.0-era handling:71881e7~/.sidekickis now 0700 dirs / 0600 filesbc5ce0f****rather thanfirst3…last4ff5b5e98200f58PreToolUsehooks fail closed; silent writes are reportedThe one that matters
ff5b5e9. Allowlist a host you trust, let it302anywhere, and the agent fetched the target and returned the content to the model:That is precisely the threat #328 exists to stop — an attacker choosing a destination, not the user choosing their own provider — and
docs/egress.mdalready claimed both checks ran on every hop.One test change, and why it's a correction rather than a loosening
test_aur_pkgver_tracks_the_sourcereplaces a strict-equality assertion. Strict equality was wrong, not merely inconvenient: the pinned sdist must exist on PyPI, and a release bump necessarily lands before AUR is repinned — so it would fail every release PR for a lag that is correct at that moment.The rule is now one-sided and bounded:
pkgvermay not point ahead of the source (that sdist doesn't exist → cannot build)pkgvermay not lag by more than one minorBoth directions are tested, so it still catches the three-release drift (0.26.0 vs 0.29.0) that this test was written for.
Verification before publishing
ROADMAP.mdrecords the release andNextpoints at 0.31.0, perCONTRIBUTING.md. The release workflow's ownVerify release sequencestep will run at publish time — that's where the tag-sequence guard lives, since CI checks out atfetch-depth 1and skips it.1389 passed, ruff clean, coverage 79.89%.