Legacy documents in CONNECTIVITY_PARAMS_FOR_RACES_TO_BE_RESTORED stored the raw
paramURL including a random=<nonce> query parameter. Current keying (via
TracTracRaceTrackerImpl.getParamURLStrippedOfRandomParam) writes and deletes
using the paramURL stripped of that nonce, so the raw legacy copies can never be
matched by replaceOne/deleteOne. They linger indefinitely, inflate the restore
queue, and are re-attempted on every server start.
This mongosh migration auto-discovers every database in a replica set, skips
those without the collection, and for each nonce-bearing document either deletes
it (when a stripped twin already exists) or strips the random= parameter in
place (when it is the only copy). Dry-run by default; APPLY=1 executes and first
copies each affected document into a per-DB _NONCE_BACKUP collection for
rollback.
Assisted-By: Claude Opus 4.8 (claude-opus-5-5)
The local branch of setup-maptiles-instance.sh runs
./linux_host/deploy_linux_host.py, which requires the "uv" tool. When uv
is not installed locally, the deployment failed. Probe for uv before the
pushd/deploy step and, if it is missing, prompt the user (defaulting to
No) before installing it via the official astral.sh installer. After a
confirmed install, source ~/.local/bin/env so uv is on PATH in the
current shell, then re-verify and abort with a clear message if it is
still missing or the user declines.
Assisted-By: Claude (claude-4.8-opus)
The GitHub-hosted runner image rolled out on ~2026-09-14 ships
cmdline-tools 12.0, whose sdkmanager no longer resolves the obsolete
'tools' (legacy Android SDK Tools) package. The android-actions/setup-android
step inherits the action default packages 'tools platform-tools' and thus
failed with "Failed to find package 'tools'" (exit code 1) before the build
script even ran. The same request in buildAndUpdateProduct.sh would fail
the same way once reached.
Override the action's packages input to 'platform-tools' and drop the
trailing 'tools' argument from the sdkmanager call in
buildAndUpdateProduct.sh. build-tools, platform-tools and the platform
are still installed by the script. The cmdline-tools-version pin is left
unchanged.
Assisted-By: Claude (claude-4.8-opus)
Prepare consumers for the release producer switching from an explicit
application/x-tar content type to the extension-inferred application/gzip.
All sites that locate the release tarball by asset content_type now accept
the set application/x-tar, application/gzip, application/x-gzip and
application/x-compressed-tar (the types commonly seen in the wild for a
gzip-compressed tar), instead of matching application/x-tar exactly.
This is behavior-preserving for existing application/x-tar releases and
forward-compatible with application/gzip releases, enabling a later,
risk-free switch of the release workflow to action-gh-release's files: input.
Consumers updated:
- GithubReleasesRepository.java (Set membership instead of String.equals)
- refreshInstance.sh (both jq selectors)
- github-download-release-assets.sh (both jq selectors)
Assisted-By: Claude (claude-4.8-opus)
Previously the option-name branch was guarded by `$cur == -*`, so a Tab
in option position with an empty current word produced nothing. Drop the
guard: compgen -W filters by $cur anyway, so an empty cur now lists every
option while a partial still narrows. Value completion is unaffected —
those cases return earlier in the function.
Assisted-By: Claude Opus 4.8
Tab-completes the script's named options and, intelligently, their
values against the git repo containing the CWD:
- remote-name options complete against 'git remote';
- remote-branch options (--upstream/downstream/fork-branch) complete
against the branches OF THE RESOLVED REMOTE, resolving each role to
a remote with the same precedence the script uses (explicit
--*-remote on the line > MERGE_U2D_* env var > built-in default);
- --local-*-branch options complete against local branches.
Install by sourcing from ~/.bashrc or symlinking into a
bash-completion completions dir under the command's basename.
Assisted-By: Claude Opus 4.8
Add MERGE_U2D_* environment variables that seed the default for every
command-line option, with precedence CLI option > env var > built-in
default. This lets the script run with no arguments when e.g.
MERGE_U2D_FORK_REMOTE is exported from .bashrc; -h shows the live
resolved defaults.
Also fix the step-7 fallback so that when 'gh pr create' refuses because
an open PR already exists for the fork head (the older-head path, where
the push already updated it in place), the existing PR is found and its
URL reported instead of erroring. 'gh pr list --head' filters by branch
name only, so match on the bare fork branch plus a headRepositoryOwner
filter, mirroring the early idempotency check.
Assisted-By: Claude Opus 4.8