Skip to content

Sync with upstream/main (+ GITHUB_TOKEN credential fix) - #3

Merged
CryptoFewka merged 27 commits into
mainfrom
sync/upstream-main
Jul 23, 2026
Merged

Sync with upstream/main (+ GITHUB_TOKEN credential fix)#3
CryptoFewka merged 27 commits into
mainfrom
sync/upstream-main

Conversation

@CryptoFewka

@CryptoFewka CryptoFewka commented Jul 23, 2026

Copy link
Copy Markdown
Owner

What

Syncs the fork with upstream/main (Wyze3306/BedrockOnLinux) and carries the credential-hygiene fix.

Brought in from upstream

  • GUI changelog overhaul, bol/qrcodegen.py (offline QR), and related auth.py / cli.py / games.py / util.py work.
  • The ci.yml static-analysis merge (ruff, zizmor, persist-credentials) plus upstream's new pins job.

Fork divergence preserved (deliberate)

  • bol/config.py is unchanged: engine SHA pins, WINEGDK_PREBUILT_REPO → this fork, and SELF_REPO decoupling all intact. Upstream did not touch config.py, third_party/, src/, or scripts/.
  • The reproducible engine-build CI history stays in place.

Conflict resolution

  • The only conflict was .github/workflows/ci.yml. Resolved by taking upstream's version, which is a strict superset of ours (same ruff/zizmor/persist-credentials steps plus the new pins job).

Credential fix included

  • The last commit removes the ambient GITHUB_TOKEN read from http_json (see the upstream PR to Wyze3306/BedrockOnLinux). Landed here too so the fork is protected now; it converges when upstream merges the same change.

Verification

  • python3 -m pytest -q: 223 passed, 2 skipped.
  • ruff check --select F bol/ tests/: clean.
  • git diff origin/main -- bol/config.py: empty (fork pins preserved).

Note

Upstream's new pins CI job reads WINEGDK_PREBUILT_REPO (this fork) and verifies the config.py engine/xcurl SHAs resolve to published releases on the fork. Both already exist and match: engine-wow64-archs-native5 (GDK-Proton-xuser-...tar.gz, SHA 4c0b8b0f...) and xcurl-504bb166e4e7 (openssl-xcurl-set-...tar.gz, SHA 504bb166...), so the job passes as-is.

Written with Claude Code

🤖 Generated with Claude Code

leeineian and others added 27 commits July 18, 2026 22:01
Added regular expressions for markdown token and link parsing. Enhanced the changelog view with a new tab and improved UI elements for better user interaction.
…list, force refresh changelogs on tab click, unified bottom panel widgets
Refactor GUI code by removing unused regex patterns and updating comments for clarity. Adjust layout and functionality of settings and changelog views.
ci: verify release pins in config.py resolve to a matching published asset
feat(gui/cli): several tweaks to the interface and script logic
- ruff (pyflakes F rules) and zizmor (GitHub Actions security auditor) run
  in the ci.yml static job; CodeQL scans Python and the native C sources
  (DLL injector, cryptbase RNG stub, XCurl CA shim, cross-compiled with
  mingw so the extractor sees them) via a new codeql.yml.
- Harden the workflows to pass zizmor: persist-credentials: false on all
  actions/checkout steps, and bind workflow_dispatch inputs to env vars
  instead of expanding them inline in run blocks (template-injection).
- codeql-action pinned to its commit SHA (not the annotated-tag object).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014pmkUWS6teoMZUUnMJG7Gr
- Bug: acct_click() (and code_dialog's on_close) re-imported msa_signed_in
  locally, which shadows the module-level import. In acct_click that made
  the sign-out error path reference msa_signed_in before assignment, an
  UnboundLocalError when msa_logout() raises. Drop the redundant local
  imports so both use the module-level one.
- Remove the unused top-level `from PIL import Image, ImageDraw` (PIL is
  imported lazily where the QR image is built, so gui.py no longer needs
  Pillow at import time); drop a redundant local
  `from .util import load_settings, save_settings`; and remove the dead
  `code_in_quote` variable.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014pmkUWS6teoMZUUnMJG7Gr
ci: add ruff, zizmor, and CodeQL static analysis
http_json() read GITHUB_TOKEN from the environment and attached it as an
Authorization header to every request. It fetches both api.github.com
(releases) and feedback.minecraft.net (game changelog), so a user or dev
with GITHUB_TOKEN set leaked their GitHub credential to a non-GitHub host.

These are public, read-only endpoints that need no credential, and the
feature already degrades to its disk cache on error, so the token only ever
raised GitHub's rate limit. Drop the ambient read entirely (least authority):
no token, nothing to leak. Update the 403 hint to match, and add a regression
test asserting no Authorization header is sent even when GITHUB_TOKEN is set.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014pmkUWS6teoMZUUnMJG7Gr
@CryptoFewka
CryptoFewka merged commit b125661 into main Jul 23, 2026
7 checks passed
@CryptoFewka
CryptoFewka deleted the sync/upstream-main branch July 23, 2026 01:39
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.

4 participants