Skip to content

Adopt main-only PR workflow and integrate reviewed dependency updates - #76

Merged
ak5 merged 31 commits into
mainfrom
feat/main-only
Oct 13, 2026
Merged

ak5 merged 31 commits into
mainfrom
feat/main-only

Conversation

@ak5

@ak5 ak5 commented Oct 13, 2026

Copy link
Copy Markdown
Owner

Summary

Make main Charon's only long-lived, protected default branch. Feature, dependency and hotfix PRs target it; successful main CI continues to publish immutable images, while deployment remains an operator action.

Bring the verified KeePass/passkey/Telegram change from #75 into main and integrate all 11 reviewed Dependabot PRs with their commit ancestry preserved. Use a merge commit for this integration PR so GitHub can recognize those dependency heads as merged.

Motivation and scope

Remove the separate dev-to-main promotion step for this binary. Update AGENTS/CLAUDE guidance, contributor/operator docs, repository skills, PR template, branch-path validation, Dependabot targets and policy tests. Retire dev only after its history is preserved in main.

Dependency updates: #55 (distroless digest), #57 (SQLite), #58 (ChaCha20Poly1305), #59 (canonical JSON), #61 (Hyper), #62 (rcgen), #64 (Buildx action), #65 (build/push action), #67 (Hatchling), #73 (Rust image digest), and #74 (Python image).

Resolve lockfile conflicts from the integrated lock and update only the intended dependencies. Adapt deprecated nonce conversion calls and explicitly enable crypto key zeroization. Match Python-image documentation and Hermes CI to Python 3.14.8.

Security impact

  • Trust boundary changed: yes, through the KeePass/admin/Telegram implementation from Use KeePass with passkey admin and Telegram approvals #75; documented in docs/threat-model.md.
  • Credential flow changed: yes, mapped read-only KDBX Password fields and an operator-only bot entry unlocked through passkey-authenticated HTTPS. No token/password env files.
  • Main remains PR-only with required checks, force pushes blocked and administrators subject to protection. Immutable publication remains gated by successful CI on the exact main commit.
  • Crypto migration preserves zeroization and the existing authenticated-encryption format; signed canonicalization, authorization, TLS and fail-closed tests pass.

Documentation

Updated current main-only workflow guidance and removed the unused promotion template. README, operator guides, contracts, examples, threat model, BotFather/E2E instructions and the Infisical comparison accompany the KeePass implementation. Relative links checked; AGENTS.md and CLAUDE.md match.

Verification

  • mise run check on the complete integrated tree, at reduced CPU priority with sequential tasks and bounded workers.
  • Connected offline KeePass/admin/Telegram/proxy/API E2E.
  • Isolated Chrome owner UI/passkey proof.
  • New main-only PR policy tests, including rejected invalid targets.
  • Use KeePass with passkey admin and Telegram approvals #75's GitHub container, Rust, supply-chain, Hermes and CodeQL checks.
  • Live Telegram and deployed firewall/container runtime behavior remain manual operator verification. Automated tests sent no real Telegram messages.

The old branch-path checks on retargeted dependency PRs reject main because their former policy permitted only promotion PRs. This integration includes the corrected policy and requires fresh passing checks before merge.

Risk and rollback

  • Risk: dependency/runtime updates, KeePass configuration migration, passkey recovery, TLS provisioning, manual unlock after restart, and publishing on every successful main revision.
  • Rollback: revert the affected changes through another main PR or deploy a previously published immutable image with matching configuration. Database/public passkey state remains operator-owned and backed up separately.

dependabot Bot and others added 30 commits August 23, 2026 17:32
Bumps distroless/cc-debian12 from `adcd20c` to `9dac0a7`.

---
updated-dependencies:
- dependency-name: distroless/cc-debian12
  dependency-version: nonroot
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [rusqlite](https://github.com/rusqlite/rusqlite) from 0.38.0 to 0.40.2.
- [Release notes](https://github.com/rusqlite/rusqlite/releases)
- [Changelog](https://github.com/rusqlite/rusqlite/blob/master/Changelog.md)
- [Commits](rusqlite/rusqlite@v0.38.0...v0.40.2)

---
updated-dependencies:
- dependency-name: rusqlite
  dependency-version: 0.40.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [chacha20poly1305](https://github.com/RustCrypto/AEADs) from 0.10.1 to 0.11.0.
- [Commits](RustCrypto/AEADs@chacha20poly1305-v0.10.1...chacha20poly1305-v0.11.0)

---
updated-dependencies:
- dependency-name: chacha20poly1305
  dependency-version: 0.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [serde_jcs](https://github.com/l1h3r/serde_jcs) from 0.1.0 to 0.2.0.
- [Commits](l1h3r/serde_jcs@v0.1.0...v0.2.0)

---
updated-dependencies:
- dependency-name: serde_jcs
  dependency-version: 0.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [hatchling](https://github.com/pypa/hatch) from 1.32.0 to 1.32.4.
- [Release notes](https://github.com/pypa/hatch/releases)
- [Commits](pypa/hatch@hatchling-v1.32.0...hatchling-v1.32.4)

---
updated-dependencies:
- dependency-name: hatchling
  dependency-version: 1.32.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [rcgen](https://github.com/rustls/rcgen) from 0.14.9 to 0.14.10.
- [Release notes](https://github.com/rustls/rcgen/releases)
- [Commits](rustls/rcgen@v/0.14.9...v0.14.10)

---
updated-dependencies:
- dependency-name: rcgen
  dependency-version: 0.14.10
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [hyper](https://github.com/hyperium/hyper) from 1.11.0 to 1.11.1.
- [Release notes](https://github.com/hyperium/hyper/releases)
- [Changelog](https://github.com/hyperium/hyper/blob/master/CHANGELOG.md)
- [Commits](hyperium/hyper@v1.11.0...v1.11.1)

---
updated-dependencies:
- dependency-name: hyper
  dependency-version: 1.11.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps library/rust from `5903719` to `114c7a4`.

---
updated-dependencies:
- dependency-name: library/rust
  dependency-version: 1.99.0-bookworm
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps python from 3.12.10-slim-bookworm to 3.14.8-slim-bookworm.

---
updated-dependencies:
- dependency-name: python
  dependency-version: 3.14.8-slim-bookworm
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
* feat: use KeePass with passkey admin and Telegram approvals

* fix: include license notices in the container build context
…grations/hermes/dev/python-3.14.8-slim-bookworm
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 4.2.0 to 4.4.1.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](docker/setup-buildx-action@bb05f3f...f87e599)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-version: 4.4.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 7.3.0 to 7.4.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](docker/build-push-action@53b7df9...c3c9e26)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-version: 7.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
…ermes/dev/python-3.14.8-slim-bookworm' into feat/main-only
…es/dev/hatchling-1.32.4' into feat/main-only
…cker/build-push-action-7.4.0' into feat/main-only
…cker/setup-buildx-action-4.4.1' into feat/main-only
@ak5
ak5 merged commit a9ce216 into main Oct 13, 2026
9 checks passed
@ak5
ak5 deleted the feat/main-only branch October 13, 2026 17:50
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