Milestone 3

This commit is contained in:
Joey Yakimowich-Payne 2026-01-29 17:47:31 -07:00
commit 691eb327d0
6 changed files with 507 additions and 24 deletions

10
PLAN.md
View file

@ -25,11 +25,11 @@
- [x] Performance tests: instructions: create/destroy 100 virtual sinks and 100 virtual sources in a tight loop; measure wall time and ensure it stays within the target budget.
- [ ] Milestone 3 - Link management API
- [ ] Implement link creation via link-factory (load libpipewire-module-link-factory and call pw_core_create_object with link.input.* and link.output.* props; see src/modules/module-link-factory.c, src/examples/internal.c, src/tools/pw-link.c).
- [ ] Support linking by node+port names and by object IDs; add object.linger and link.passive options.
- [ ] Add link deletion and link reconciliation (auto-remove stale links when endpoints vanish).
- [ ] Tests to add (non-happy path/edge cases): instructions: link to non-existent port; link output-to-output or input-to-input; remove node while link is initializing; create two links to same port and validate policy behavior.
- [ ] Performance tests: instructions: create 200 links between existing ports; measure create+destroy time and verify subsecond target where possible.
- [x] Implement link creation via link-factory (load libpipewire-module-link-factory and call pw_core_create_object with link.input.* and link.output.* props; see src/modules/module-link-factory.c, src/examples/internal.c, src/tools/pw-link.c).
- [x] Support linking by node+port names and by object IDs; add object.linger and link.passive options.
- [x] Add link deletion and link reconciliation (auto-remove stale links when endpoints vanish).
- [x] Tests to add (non-happy path/edge cases): instructions: link to non-existent port; link output-to-output or input-to-input; remove node while link is initializing; create two links to same port and validate policy behavior.
- [x] Performance tests: instructions: create 200 links between existing ports; measure create+destroy time and verify subsecond target where possible.
- [ ] Milestone 4 - Persistence and "ephemeral source" policy
- [ ] Implement persistence (JSON or TOML) for: virtual nodes, links, and per-app routing rules. Persist on change; load on startup.