Skip to content

feat: scaffold the rust data daemon#718

Merged
CougarTasker merged 1 commit into
mainfrom
feat/rust-daemon-setup
Jun 29, 2026
Merged

feat: scaffold the rust data daemon#718
CougarTasker merged 1 commit into
mainfrom
feat/rust-daemon-setup

Conversation

@CougarTasker

@CougarTasker CougarTasker commented Jun 17, 2026

Copy link
Copy Markdown
Member

Features

  • Adds the Rust data daemon workspace under rust/ — the data_daemon binary plus the data_daemon_ipc and data_daemon_producer crates.
  • Adds the rust-data-daemon CI workflow (cargo fmt / clippy / test / build / doc) and the cargo fmt/clippy pre-commit hooks.
  • Adds developer documentation (Rust dev guide, contribution-guide section, intro slides) and spell-check dictionary entries.
  • No runtime impact: the Rust code is not yet built into the wheel or reachable from Python.

Bugfixes

  • None

Items

Related PRs

@CougarTasker CougarTasker self-assigned this Jun 17, 2026
@CougarTasker CougarTasker added the version:none tests, docs, CI only; no functional changes label Jun 17, 2026
@CougarTasker CougarTasker force-pushed the feat/rust-daemon-setup branch from b3a4d47 to eb7c452 Compare June 17, 2026 23:54
@CougarTasker CougarTasker changed the title feat: add rust data daemon workspace, CI and developer docs feat: scaffold the rust data daemon Jun 17, 2026
@CougarTasker CougarTasker force-pushed the feat/rust-daemon-setup branch 3 times, most recently from 9b03330 to aeb78d2 Compare June 18, 2026 17:34
@CougarTasker CougarTasker marked this pull request as ready for review June 18, 2026 17:55
@CougarTasker CougarTasker force-pushed the feat/rust-daemon-setup branch 2 times, most recently from e3bf235 to 5e506c1 Compare June 19, 2026 07:31
Comment thread rust/data_daemon/src/api/auth.rs
Comment thread rust/data_daemon/src/api/client.rs
Comment thread rust/data_daemon/src/api/client.rs Outdated
Comment thread rust/data_daemon/src/api/client.rs
Comment thread rust/data_daemon/src/cli/reset.rs
Comment thread rust/data_daemon/src/cloud/cloud_files.rs
Comment thread rust/data_daemon/src/cloud/watchers/recording_reaper.rs
Comment thread rust/data_daemon/src/cloud/cloud_files.rs
Comment thread rust/data_daemon/src/cli/coordinators.rs
Comment thread rust/data_daemon/src/cloud/watchers/org_watcher.rs
Comment thread rust/data_daemon/src/lifecycle/recovery.rs Outdated
Comment thread rust/data_daemon/src/lifecycle/shutdown.rs
Comment thread rust/data_daemon/src/pipeline/dispatcher.rs
Comment thread rust/data_daemon/src/state/trace_writer.rs Outdated
Comment thread rust/data_daemon/src/state/store.rs
Comment thread rust/data_daemon_producer/src/nut_writer.rs
@damonhayhurst-neuraco

Copy link
Copy Markdown
Contributor

LGTM!

One suggestion though would be to improve unit test coverage around ipc communications in the data_daemon crate. Here's an overall coverage report

Coverage Report

Totals: Functions 70.49% (829/1176) · Lines 67.83% (8312/12255) · Regions 69.30% (12608/18193)

Filename Function Line Region
data_daemon/src/api/auth.rs 68.42% (26/38) 83.47% (197/236) 85.75% (325/379)
data_daemon/src/api/client.rs 91.53% (54/59) 90.34% (393/435) 88.85% (558/628)
data_daemon/src/api/models.rs 100.00% (3/3) 100.00% (49/49) 100.00% (68/68)
data_daemon/src/cli/coordinators.rs 0.00% (0/4) 0.00% (0/94) 0.00% (0/154)
data_daemon/src/cli/launch.rs 0.00% (0/19) 0.00% (0/283) 0.00% (0/446)
data_daemon/src/cli/launch_logging.rs 0.00% (0/7) 0.00% (0/57) 0.00% (0/70)
data_daemon/src/cli/mod.rs 0.00% (0/1) 0.00% (0/18) 0.00% (0/25)
data_daemon/src/cli/profile.rs 22.22% (2/9) 14.29% (12/84) 11.63% (15/129)
data_daemon/src/cli/reset.rs 66.67% (8/12) 47.37% (54/114) 50.87% (117/230)
data_daemon/src/cli/status.rs 0.00% (0/1) 0.00% (0/12) 0.00% (0/13)
data_daemon/src/cli/stop.rs 0.00% (0/3) 0.00% (0/47) 0.00% (0/61)
data_daemon/src/cloud/cloud_files.rs 100.00% (8/8) 100.00% (48/48) 100.00% (84/84)
data_daemon/src/cloud/mod.rs 100.00% (4/4) 88.89% (16/18) 86.21% (25/29)
data_daemon/src/cloud/notifier.rs 100.00% (12/12) 81.20% (108/133) 81.72% (152/186)
data_daemon/src/cloud/org_watcher.rs 93.75% (15/16) 97.20% (104/107) 97.41% (188/193)
data_daemon/src/cloud/progress.rs 84.62% (22/26) 85.18% (316/371) 86.37% (431/499)
data_daemon/src/cloud/recording_cancel_notifier.rs 100.00% (23/23) 98.72% (232/235) 98.96% (379/383)
data_daemon/src/cloud/recording_reaper.rs 0.00% (0/8) 0.00% (0/55) 0.00% (0/77)
data_daemon/src/cloud/recording_start_notifier.rs 100.00% (26/26) 88.03% (250/284) 88.96% (411/462)
data_daemon/src/cloud/recording_stop_notifier.rs 100.00% (27/27) 98.97% (289/292) 99.21% (501/505)
data_daemon/src/cloud/registration.rs 82.86% (29/35) 82.88% (431/520) 80.82% (573/709)
data_daemon/src/cloud/status.rs 34.62% (9/26) 30.49% (75/246) 30.97% (109/352)
data_daemon/src/cloud/upload_transfer.rs 75.00% (21/28) 70.97% (264/372) 72.57% (389/536)
data_daemon/src/cloud/uploader.rs 78.95% (30/38) 66.34% (477/719) 72.45% (689/951)
data_daemon/src/config/env.rs 38.10% (8/21) 46.92% (61/130) 54.34% (119/219)
data_daemon/src/config/mod.rs 87.50% (7/8) 83.81% (88/105) 80.69% (117/145)
data_daemon/src/config/profile.rs 91.67% (22/24) 90.12% (155/172) 91.15% (340/373)
data_daemon/src/connection/monitor.rs 80.00% (8/10) 83.70% (77/92) 85.89% (140/163)
data_daemon/src/connection/wakelock.rs 65.00% (13/20) 41.77% (66/158) 49.58% (119/240)
data_daemon/src/encoding/json_trace.rs 78.95% (15/19) 88.36% (129/146) 89.80% (220/245)
data_daemon/src/encoding/metadata.rs 77.78% (14/18) 88.59% (132/149) 91.08% (296/325)
data_daemon/src/encoding/video_encoder.rs 75.47% (40/53) 49.67% (305/614) 45.61% (338/741)
data_daemon/src/ipc/listener.rs 0.00% (0/5) 0.00% (0/86) 0.00% (0/122)
data_daemon/src/ipc/node.rs 0.00% (0/13) 0.00% (0/101) 0.00% (0/128)
data_daemon/src/lifecycle/daemonize.rs 0.00% (0/9) 0.00% (0/91) 0.00% (0/145)
data_daemon/src/lifecycle/pidfile.rs 100.00% (13/13) 93.28% (111/119) 92.06% (232/252)
data_daemon/src/lifecycle/recovery.rs 87.50% (14/16) 83.96% (178/212) 84.14% (297/353)
data_daemon/src/lifecycle/signals.rs 75.00% (6/8) 60.47% (26/43) 60.98% (50/82)
data_daemon/src/main.rs 0.00% (0/1) 0.00% (0/3) 0.00% (0/3)
data_daemon/src/pipeline/dispatcher.rs 85.00% (68/80) 84.36% (820/972) 83.93% (1212/1444)
data_daemon/src/pipeline/json_writer.rs 75.00% (9/12) 71.84% (74/103) 73.83% (110/149)
data_daemon/src/pipeline/trace_actor.rs 74.47% (35/47) 60.30% (398/660) 58.06% (544/937)
data_daemon/src/state/events.rs 85.71% (6/7) 90.91% (30/33) 94.55% (52/55)
data_daemon/src/state/schema.rs 69.23% (9/13) 89.00% (89/100) 73.68% (140/190)
data_daemon/src/state/store.rs 91.76% (78/85) 97.56% (838/859) 96.98% (1188/1225)
data_daemon/src/state/trace_writer.rs 97.62% (41/42) 89.44% (322/360) 91.30% (504/552)
data_daemon/src/storage/budget.rs 83.33% (15/18) 86.39% (146/169) 91.48% (247/270)
data_daemon/src/storage/paths.rs 95.45% (21/22) 96.95% (159/164) 95.95% (213/222)
data_daemon_ipc/src/lib.rs 83.33% (20/24) 93.06% (228/245) 91.96% (286/311)
data_daemon_ipc/src/paths.rs 88.89% (8/9) 90.16% (55/61) 79.79% (75/94)
data_daemon_producer/src/lib.rs 0.00% (0/17) 0.00% (0/246) 0.00% (0/295)
data_daemon_producer/src/nut_writer.rs 72.22% (26/36) 72.99% (327/448) 71.55% (508/710)
data_daemon_producer/src/paths.rs 11.11% (1/9) 6.82% (3/44) 5.08% (3/59)
data_daemon_producer/src/publisher.rs 5.88% (2/34) 5.30% (14/264) 7.01% (23/328)
data_daemon_producer/src/query.rs 0.00% (0/5) 0.00% (0/46) 0.00% (0/65)
data_daemon_producer/src/writer.rs 24.44% (11/45) 38.52% (166/431) 37.97% (221/582)
Totals 70.49% (829/1176) 67.83% (8312/12255) 69.30% (12608/18193)

@CougarTasker CougarTasker force-pushed the feat/rust-daemon-setup branch from 5e506c1 to 96206d2 Compare June 25, 2026 00:20

@CougarTasker CougarTasker left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion: naming of coodinators and handles doesn't suggest a relationship

Disscussed offline will rename Handle -> Handler to disguish

@CougarTasker CougarTasker force-pushed the feat/rust-daemon-setup branch from 96206d2 to 875af2e Compare June 26, 2026 16:20
@CougarTasker

Copy link
Copy Markdown
Member Author

suggestion: naming of coodinators and handles doesn't suggest a relationship

Disscussed offline will rename Handle -> Handler to disguish

discussed offline will rename where it makes sense

@CougarTasker CougarTasker force-pushed the feat/rust-daemon-setup branch from 8d47d0a to f5c5b52 Compare June 29, 2026 15:46
@CougarTasker CougarTasker merged commit c6382a0 into main Jun 29, 2026
18 checks passed
@CougarTasker CougarTasker deleted the feat/rust-daemon-setup branch June 29, 2026 22:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

version:none tests, docs, CI only; no functional changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants