Skip to content

chore(deps)(deps): bump actions/setup-node from 4 to 6#2

Closed
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/github_actions/actions/setup-node-6
Closed

chore(deps)(deps): bump actions/setup-node from 4 to 6#2
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/github_actions/actions/setup-node-6

Conversation

@dependabot
Copy link
Copy Markdown
Contributor

@dependabot dependabot Bot commented on behalf of github May 8, 2026

Bumps actions/setup-node from 4 to 6.

Release notes

Sourced from actions/setup-node's releases.

v6.0.0

What's Changed

Breaking Changes

Dependency Upgrades

Full Changelog: actions/setup-node@v5...v6.0.0

v5.0.0

What's Changed

Breaking Changes

This update, introduces automatic caching when a valid packageManager field is present in your package.json. This aims to improve workflow performance and make dependency management more seamless. To disable this automatic caching, set package-manager-cache: false

steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v5
  with:
    package-manager-cache: false

Make sure your runner is on version v2.327.1 or later to ensure compatibility with this release. See Release Notes

Dependency Upgrades

New Contributors

Full Changelog: actions/setup-node@v4...v5.0.0

v4.4.0

... (truncated)

Commits

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4 to 6.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](actions/setup-node@v4...v6)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code labels May 8, 2026
@ntatschner ntatschner closed this in a37214c May 9, 2026
@dependabot @github
Copy link
Copy Markdown
Contributor Author

dependabot Bot commented on behalf of github May 9, 2026

OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting @dependabot ignore this major version or @dependabot ignore this minor version. You can also ignore all major, minor, or patch releases for a dependency by adding an ignore condition with the desired update_types to your config file.

If you change your mind, just re-open this PR and I'll resolve any conflicts on it.

@dependabot dependabot Bot deleted the dependabot/github_actions/actions/setup-node-6 branch May 9, 2026 11:29
ntatschner pushed a commit that referenced this pull request May 11, 2026
Drift-audit fix #2. crates/starstats-server had two pub structs both
named `ListResponse` registered under utoipa's #[derive(ToSchema)]:
one in query.rs (events list), one in submission_routes.rs (submissions
list). utoipa keys component schemas by Rust type name (rightmost path
segment, not fully-qualified), so the second registration silently
overwrote the first in the generated OpenAPI document. Net effect:
`components.schemas.ListResponse` only ever held the submissions shape;
the events shape vanished from the spec entirely.

The drift wasn't visible at compile time — both files compile fine,
the spec is structurally valid, and CI's drift-detection step only
checks regen idempotency, not semantic correctness. The fingerprint
was apps/web/src/lib/api.ts where someone had patched around the
missing schema with `Omit<ListResponse, 'events'|'next_after'> &
{events, next_after}` — the Omit removed nothing because ListResponse
in the spec was the submissions shape (with `submissions` field), not
the events shape, so the resulting type silently leaked the
`submissions` field into ListEventsResponse.

Fix:
  * Rename query.rs::ListResponse -> EventsListResponse (10 callsites
    in this file: definition, utoipa::path body, tests). The
    submission-side ListResponse keeps its name — it currently wins
    the collision so renaming nothing on that side keeps the wire
    name stable for existing clients.
  * openapi.rs:182 references the renamed type.
  * Regenerate packages/api-client-ts/src/generated/schema.ts —
    diff confirms BOTH schemas now exist as distinct components.
  * Drop the Omit/intersection workaround in apps/web/src/lib/api.ts
    in favour of a direct interface declaration. The local type now
    correctly mirrors the server with no implicit coupling to a
    schema name that could collide again.

Verification: cargo test (266/266 server) + cargo clippy -D warnings
+ pnpm web typecheck + pnpm api-client-ts typecheck — all clean.
The wire URL (GET /v1/me/events) and JSON field names are unchanged;
this is an internal type-name refactor with no observable behaviour
delta.
ntatschner pushed a commit that referenced this pull request May 20, 2026
The bulk-sync lane previously updated Config on disk silently when
the piggyback pull found a remote change. The tray panel kept
showing stale config until next user interaction. Threading
AppHandle through start/respawn/spawn_lane lets the lane emit
config-changed and sync-revoked just like the launch + focus
triggers (C7) do.

Closes follow-up #2 from PR #63.
ntatschner pushed a commit that referenced this pull request May 20, 2026
The bulk-sync lane previously updated Config on disk silently when
the piggyback pull found a remote change. The tray panel kept
showing stale config until next user interaction. Threading
AppHandle through start/respawn/spawn_lane lets the lane emit
config-changed and sync-revoked just like the launch + focus
triggers (C7) do.

Closes follow-up #2 from PR #63.
ntatschner added a commit that referenced this pull request May 28, 2026
…132)

A 10+ hour outage on 2026-05-28 surfaced three architectural bugs in
the tray's auth-loss handling. All three fed each other:

## Bug 1 — hangar worker unilaterally sabotages the sync worker

On a 401 from the hangar push (`POST /v1/me/hangar`), the hangar
worker called `clear_persisted_device_token()` AND set
`account_status.auth_lost = true` tray-wide. The intent was "if our
push 401s, the sync worker's calls will also 401, save a round-trip".
But the hangar push and sync drain are independent surfaces, and they
can race: the sync worker captures `api_url`/`access_token` at
respawn-time, so a fresh post-pair token can be live in the sync
worker's locals while the hangar worker is still using the pre-pair
config snapshot. The hangar 401 in that race wipes the just-paired
token AND flips global auth_lost — for everyone. Fix: hangar logs +
records `hangar_stats.last_error` and bails its own cycle. Tray-wide
auth_lost decisions stay with the sync worker's own 401 handlers.

## Bug 2 — sync worker with auth_lost loops silently forever

`sync.rs::spawn_lane` checked `if !auth_lost` and skipped the drain
on every tick when set. Workers stayed alive but did no work — no
HTTP, no `sync_stats` updates, no log lines. The user saw 10+ hours
of zero activity with no diagnostic signal. Fix: when the worker
sees `auth_lost`, it logs once, emits `sync-paused` so the UI can
react, and BREAKS out of the loop. The worker re-spawns on the next
`respawn()` (pair_device / save_config / set_sync_preset), so re-pair
recovers automatically.

## Bug 3 — health pill shows green forever on frozen sync_stats

The pill derived from `sync_stats.last_success_at` with no staleness
check, so a worker that died at noon would have its "last green
reading" displayed until the user restarted the app. Fix: extend
`deriveSyncHealth` with a staleness threshold (2× `bulk interval_secs`,
floored at 60s). Adds `STALE` and `PAUSED` variants. Precedence is
now OFF > PAUSED > IDLE > ERR > STALE > OK — ERR beats STALE because
a known error is more useful than "we don't know"; STALE catches
silent-failure modes like bug #2.

Plus a `sync-paused` listener in SettingsPane that surfaces a notice
("Sync paused: the server rejected this uplink's token. Re-pair the
device to resume.") and clears on toggle-back-on, mirroring the
existing `sync-revoked` notice plumbing.

## Tests

- 210 starstats-client cargo tests pass (no new tests — the sync.rs
  change is a control-flow refactor exercised by the existing fixture
  surface).
- 162 tray-ui vitest tests pass (was 160; added STALE and PAUSED
  tests in SettingsPane.test.tsx). Existing OK test updated to use a
  fresh timestamp so the new staleness check doesn't fire.
- `cargo fmt -p starstats-client --check` clean.
- `cargo clippy -p starstats-client --bin starstats-client --tests
  -- -D warnings` clean.

Co-authored-by: Nigel Tatschner <n Tatschner@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants