Repository navigation
ci: Compatibility nightly + local Mac CI (follows #31) - #35
Merged
Merged
Conversation
Add .github/workflows/nightly.yml (Compatibility): daily ubuntu·Node22 and ubuntu·DSH-alpha; weekly windows·Node24; skip schedule when main had no commits in the window (24h/7d); workflow_dispatch always runs. No macOS in GHA — hs runs that locally. Tighten test.yml: cancel-in-progress only off main, paths-ignore docs on push only, job/step timeouts, persist-credentials: false. Add ds-bot/scripts/local-ci.sh and npm run ci:local for the Mac gate. Verifier: - ran: python3 yaml.safe_load on both workflows; bash -n local-ci.sh; Codex review → PASS (round 1) - not run: full npm test / GHA (workflow + script only); actionlint not installed on the box
hsliuustc0106
force-pushed
the
ci/nightly-compat
branch
from
October 14, 2026 13:28
8d22aee to
001b22e
Compare
This was referenced Oct 23, 2026
Birfy
added a commit
that referenced
this pull request
Oct 23, 2026
Pasting or scanning an invite joined a room the person had never seen: previewInvite,
the social/face-invite-preview endpoint and its host handler were all on main, and no
client called any of them. The join dialog now asks for the preview and draws a card
with the room's name, lead, members/maxMembers and deadline; Join on that card runs the
join that already existed, and Clear empties the field. Scanning goes through the same
preview, so no Bot joins before the card is confirmed.
The preview is information, never a gate: a 404 or a timeout drops the card and the same
join runs with the same sentence. `{ unsupported: true }` is the one answer that stops
there, because the invite feature is off on that server and the join would only reach the
same sentence through a route that is not there.
The card cleans `name` itself, because the host passes that one value through as the
remote room wrote it, while `lead` is already cleaned there.
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.
Summary
Follow-up to #31 (slim PR gate). Stacked on #31's tip.
ubuntu-latest · Node 24 · DSH 0.2.0-rc.2(required check). Cost tweaks only ontest.yml:cancel-in-progressonly offmain,paths-ignorefordocs/**/**/*.mdon push only (not onpull_request, so a required check is never skipped on docs PRs), jobtimeout-minutes: 20, 5-minute timeouts onnpm ci/ DSH install,persist-credentials: false.Compatibilityworkflow (.github/workflows/nightly.yml):0 16 * * *(00:00 Asia/Shanghai): ubuntu·Node22·DSH 0.2.0-rc.2 + ubuntu·Node24·DSH 0.2.1-alpha.10 17 * * 6(Sun 01:00 Asia/Shanghai): windows-latest·Node24·DSH 0.2.0-rc.2workflow_dispatchalways runs daily + weekly legsmainhad no commits in the window (24h / 7d)compat · …so they never collide with the required checkds-bot/scripts/local-ci.sh+npm run ci:local(same gate steps + tip SHA pass/fail)vs #29
This PR supersedes the matrix / compat parts of #29 (Windows / Node22 / DSH alpha / macOS-as-GHA). Remaining #29 pieces that are not here (hs to decide whether to keep #29 open for them):
.github/actions/flybot-testspackagejob +check-pack.mjs+tests-okaggregaterelease.yml(tag → GitHub Release)Cost (estimate)
Verifier
python3 yaml.safe_loadon both workflows;bash -n ds-bot/scripts/local-ci.sh; Codex review → PASS (1 round)npm test/ live GHA (workflow + script only); actionlint not on the boxTest plan
cd ds-bot && npm run ci:local→ PASS with tip SHA