Skip to content

Fix Certain Scenarios Getting Stuck - #204

Merged
thkruz merged 9 commits into
mainfrom
dev
Oct 6, 2026
Merged

thkruz merged 9 commits into
mainfrom
dev

Conversation

@thkruz

@thkruz thkruz commented Oct 6, 2026 •

Copy link
Copy Markdown
Owner

This pull request makes significant changes to the deployment workflows and documentation for the project, with the main focus on simplifying and restricting the deployment process. The UAT (User Acceptance Testing) deployment pipeline and its associated GitHub Actions have been removed, leaving only production deployments via pushes to main. Additionally, a new workflow has been added to prevent merging of audio files that haven't been properly processed. The documentation has also been updated to reflect these changes.

The most important changes are:

Deployment workflow simplification:

  • Removed all UAT deployment jobs and the ability to trigger UAT deployments via PR comments or manual workflow dispatch from .github/workflows/deploy-pipeline.yml and deleted .github/workflows/deploy-uat-comment.yml. Now, only production deployments through pushes to main are supported. [1] [2] [3]
  • Updated the deployment pipeline to always use a fixed concurrency group (deploy-production) and removed permissions and configuration related to UAT and PR deployments.
  • Added a step to set up pnpm in the production deployment job to ensure compatibility with the Cloudflare Wrangler action.

Audio file merge protection:

  • Introduced a new workflow .github/workflows/author-audio-guard.yml that blocks merging of pull requests containing unprocessed audio files in the incoming-audio/ folder, ensuring maintainers process audio before merging.

Documentation updates:

  • Updated the README.md to remove references to UAT deployments and clarify that deployments are now only to production via pushes to main.## Description

Testing

  • Unit tests pass (npm test)
  • E2E tests pass locally (npm run test:e2e)

Events that objectives wait on start (or end) from the objective instead of
mission start, so late players are never stranded. Command objectives fail
when their window closes instead of deadlocking. window.advanceClock burns
objective countdowns, and the specs it exposed no longer make jumps a player
cannot. Quiz manager hands the pending indicator to another objective's open
quiz. Restore test for the one affected production checkpoint (ham-sdr S5).
…19.1)

test/reference compares the engine to published values: ITU-R P.838-3,
P.618-13 and P.676-13 (ITU validation examples), FSPL, the CPI 9.0 m and
Prodelin 1244 datasheets, the S.580-6 envelope, DVB-S2 QEF thresholds
(EN 302 307 Table 13), uncoded BER, Vallado's SGP4 vectors and the Doppler
range-rate identity. A case the engine is known to fail names its ID in
docs/known-deviations.md and runs as it.fails, so fixing a model forces the
doc and the test to change together (REFERENCE_STRICT=1 shows the gaps).
docs/simulation-models.md maps each quantity to its function, standard,
reference case and deviation. 27 cases pass, 21 are known deviations,
including two the audit missed: 2.4 m Ku gain 1 dB under its datasheet and
a Doppler factor up to 0.22 km/s off the geometric range rate.

Receiver.requiredCnDb extracts the per-modulation threshold so it can be
tested; behaviour is unchanged.
…phase 19.1)

scripts/calibration/snapshot.calibration.ts flies all 74 scenarios with
their own stations and satellites (program-track at 60 Hz; each LEO's first
pass above 5 deg, GEO settled) and writes test/calibration/<id>.json: per
carrier IF power, noise floor, C/N and lock; gain, G/T and Tsys at the peak
elevation; the LNB noise temperature; and the scenario's authored physical
thresholds. diff.mjs compares a fresh run with a committed ledger and lists
thresholds a model change leaves unmet (best-case, clear sky). Run with
npx vitest run --config vitest.calibration.config.mts (about 3 minutes).
Baseline: no covered threshold is short; 15 are not covered (scripted
interferers and stations that start without a carrier by design).
The 2026-09-26 production deploy failed: wrangler-action installs wrangler
with the repo's packageManager (pnpm) and the deploy job had no pnpm on
PATH. UAT is retired: its deploy jobs, the /deploy-uat comment workflow,
the uat wrangler environment and the README section are gone.
pnpm run author checks a collaborator's setup and opens the editor;
pnpm run author:intake <PR#> moves a PR's staged clip audio to R2. The
author-audio-guard workflow blocks merging a PR that still carries audio
in incoming-audio/.
A checkpoint supplied from memory (private-edition dev tooling only):
loadCheckpoint serves it for its scenario, the scenario page restores it
without a sign-in, and UserDataService refuses every backend write while
it is active, so a replay never touches the developer's own saves.
@thkruz thkruz self-assigned this Oct 6, 2026
@thkruz thkruz added type: bug Something isn't working priority: high Must fix before launch labels Oct 6, 2026
@github-actions

github-actions Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

OpenSSF Scorecard

PackageVersionScoreDetails
npm/proxy-addr 2.0.8 🟢 7.3
Details
CheckScoreReason
Maintained🟢 810 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 8
Binary-Artifacts🟢 10no binaries found in the repo
Dependency-Update-Tool🟢 10update tool detected
Code-Review🟢 5Found 4/7 approved changesets -- score normalized to 5
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Pinned-Dependencies🟢 5dependency not pinned by hash detected -- score normalized to 5
Token-Permissions🟢 10GitHub workflow tokens follow principle of least privilege
Vulnerabilities🟢 100 existing vulnerabilities detected
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
License🟢 10license file detected
Signed-Releases⚠️ -1no releases found
SAST🟢 8SAST tool detected but not run on all commits
Branch-Protection⚠️ 0branch protection not enabled on development/release branches
Fuzzing⚠️ 0project is not fuzzed
Packaging⚠️ -1packaging workflow not detected
Security-Policy🟢 9security policy file detected
Contributors🟢 10project has 6 contributing companies or organizations
CI-Tests🟢 619 out of 29 merged PRs checked by a CI test -- score normalized to 6

Scanned Files

  • .github/workflows/deploy-uat-comment.yml
  • pnpm-lock.yaml

@thkruz
thkruz merged commit fe92aea into main Oct 6, 2026
13 of 14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

priority: high Must fix before launch type: bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant