Decide whether the 8 macOS-skipped daemon-mode tests should be re-enabled (or the guard made explicit)
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 45/100
- Issue type
- Refactor
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- rust
- Domain
- backend, testing-qa
Research direction
Start in hyperdb-mcp/tests/daemon_tests.rs, especially the eight macOS cfg_attr guards at lines 1469–1718, and review related reliability issues #286 and #300. Run the daemon tests on macOS under representative load and measure startup behavior; done means either reliable coverage on macOS with an appropriate timeout or an explicit, documented guard reason.
Written by the indexing model from the issue text.
Description
Decision needed
Eight daemon-mode integration tests in hyperdb-mcp/tests/daemon_tests.rs are skipped on macOS via:
#[cfg_attr(target_os = "macos", ignore = "flaky on macOS CI — daemon startup exceeds 150s timeout")]
They run on Linux and Windows CI — macOS is the only platform where they don't. This issue is to decide whether that guard is still warranted or should be lifted, rather than leaving it as a silent cfg_attr.
The eight:
daemon_mode_engine_connects_to_shared_hyperddaemon_mode_two_engines_share_same_hyperddaemon_mode_persistent_database_file_survives_engine_dropdaemon_mode_persistent_engine_data_is_queryablehyperd_monitor_detects_killed_hyperd_and_restartsclient_report_triggers_restart_after_killengine_recovers_after_hyperd_killeddaemon_mode_ephemeral_database_cleaned_up_on_drop
Why it matters
These cover the daemon's core value: shared-hyperd reuse across engines, persistence across engine drops, crash detection and restart, and ephemeral cleanup. Until recently all eight were unconditionally #[ignore]d, so the daemon shipped resident-by-default for months with no automated crash-recovery coverage. Re-enabling them on Linux/Windows immediately turned CI red and exposed a real endpoint-publish-ordering bug (fixed in #286). So the coverage is load-bearing — and macOS is currently the one tier not getting it.
The evidence on both sides
For lifting the guard: on an Apple M3 Max these run in ~15–22s each, nowhere near the 150s budget. The reason string blames "daemon startup exceeds 150s timeout," which does not reproduce on a normal local macOS run.
For keeping it: the flakiness was observed specifically on shared/loaded CI runners. When macOS-ignored tests were forced to run under load (load average ~4.8, another build in progress), daemon_mode_engine_connects_to_shared_hyperd failed with "TestDaemon did not start within 150s". macOS GitHub-hosted runners are slower and more contended than the Linux ones, so a budget that is generous locally can still be tight there.
Options
- Lift the guard, raise the budget. Re-enable on macOS with a longer or adaptive startup timeout (scale the 150s wait, or key it off observed CI slowness) so all three platforms get crash-recovery coverage. Risk: reintroduces macOS CI flakiness if the real problem is variance rather than the absolute budget.
- Investigate the macOS startup cost first. Determine why daemon+
hyperdstartup can exceed 150s on macOS runners (cold binary, code-signing/quarantine checks on first exec, runner I/O) before changing the guard. Most likely to produce a durable fix. - Keep the guard as a deliberate tradeoff, but say so explicitly in the reason string — "skipped on macOS CI runners due to startup variance; covered on Linux and Windows" — so it reads as a decision, not a suspected-stale workaround.
Recommendation: option 2 then 1 — measure the macOS startup path before widening the budget, since a 150s timeout that is already 7× the local runtime suggests the failure is a stall, not a slow-but-completing start.
Related recent daemon-test reliability items
- #286 — the endpoint-publish-ordering bug these tests caught once re-enabled on Linux.
- #300 — a separate shared-state flake in
daemon_tests.rs(scan_all_refused_returns_freeport_base). - #302 — Windows Named Pipe verification/perf, once the daemon moves to IPC.
Provenance
Raised while auditing the ignored-test surface. Verified against main at 8760df2: the eight cfg_attr(target_os = "macos", ignore) guards are at daemon_tests.rs:1469–1718.
- Dominant language
- Rust
- Stars
- 2
- Forks
- 2
- Avg merge
- 12h 2m
- Merged PRs (30d)
- 60
Getting set up
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from tableau/hyper-api-rust
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
tableau/hyper-api-rust#294 ·
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
tableau/hyper-api-rust#311 ·
Maintainers usually reply within 1 day
-
Windows Named Pipe: verify DACL denies other users, and measure read-path perf for MCP workloadsOpen
Difficulty 4/5 3-5 days Newbie friendliness 38/100
tableau/hyper-api-rust#302 ·
Maintainers usually reply within 1 day
-
Difficulty 3/5 1-2 days Newbie friendliness 72/100
tableau/hyper-api-rust#300 ·
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 55/100
tableau/hyper-api-rust#299 ·
Maintainers usually reply within 1 day
All issues in tableau/hyper-api-rust
Similar issues
-
area:cli bug good first issue priority:high
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
Maintainers usually reply within 1 day
-
type: bug
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
ActivityWatch/activitywatch#1463 · 1 reaction ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
Maintainers usually reply within 1 day