Commit 5b12546
feat: FollowerConfigManager — unified Global + Override config pattern for followers
Implements the same proven architecture as SafetyManager for follower operational
config: Follower.General defaults → sparse Follower.FollowerOverrides → legacy
per-section fallback (deprecated) → hardcoded fallback. Thread-safe singleton with
O(1) cached lookups and per-param provenance reporting.
Backend changes:
- New FollowerConfigManager singleton (src/classes/follower_config_manager.py)
- 38 unit tests covering resolution hierarchy, caching, provenance, callbacks
- All 8 followers migrated from per-section config reads to FCM calls
- YawRateSmoother adopted in mc_velocity_position + mc_velocity_distance
- config_default.yaml restructured: shared params → Follower.General, sparse
overrides in Follower.FollowerOverrides, per-follower sections keep unique only
- API endpoints: GET /api/follower/config/general, /api/follower/config/{name}
- Config backend fixes: remove dead deepdiff import, fix restore_backup reload,
fix revert_to_default _config_raw sync, remove noisy validation warning
- Removed orphaned GimbalTrackerSettings section
- parameters.py: Follower in _GROUPED_SECTIONS, FCM init/reload integration
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>1 parent 128339f commit 5b12546
File tree
15 files changed
+1253
-308
lines changed- configs
- src/classes
- followers
- tests/unit
- followers
15 files changed
+1253
-308
lines changedLarge diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
36 | | - | |
37 | 36 | | |
38 | 37 | | |
39 | 38 | | |
| |||
461 | 460 | | |
462 | 461 | | |
463 | 462 | | |
464 | | - | |
465 | | - | |
466 | | - | |
467 | | - | |
| 463 | + | |
| 464 | + | |
468 | 465 | | |
469 | 466 | | |
470 | 467 | | |
| |||
668 | 665 | | |
669 | 666 | | |
670 | 667 | | |
| 668 | + | |
| 669 | + | |
| 670 | + | |
| 671 | + | |
671 | 672 | | |
672 | 673 | | |
673 | 674 | | |
| 675 | + | |
| 676 | + | |
674 | 677 | | |
675 | 678 | | |
676 | 679 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
419 | 419 | | |
420 | 420 | | |
421 | 421 | | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
422 | 426 | | |
423 | 427 | | |
424 | 428 | | |
| |||
4541 | 4545 | | |
4542 | 4546 | | |
4543 | 4547 | | |
| 4548 | + | |
| 4549 | + | |
| 4550 | + | |
| 4551 | + | |
| 4552 | + | |
| 4553 | + | |
| 4554 | + | |
| 4555 | + | |
| 4556 | + | |
| 4557 | + | |
| 4558 | + | |
| 4559 | + | |
| 4560 | + | |
| 4561 | + | |
| 4562 | + | |
| 4563 | + | |
| 4564 | + | |
| 4565 | + | |
| 4566 | + | |
| 4567 | + | |
| 4568 | + | |
| 4569 | + | |
| 4570 | + | |
| 4571 | + | |
| 4572 | + | |
| 4573 | + | |
| 4574 | + | |
| 4575 | + | |
| 4576 | + | |
| 4577 | + | |
| 4578 | + | |
| 4579 | + | |
| 4580 | + | |
| 4581 | + | |
| 4582 | + | |
| 4583 | + | |
| 4584 | + | |
| 4585 | + | |
| 4586 | + | |
| 4587 | + | |
| 4588 | + | |
| 4589 | + | |
| 4590 | + | |
| 4591 | + | |
| 4592 | + | |
| 4593 | + | |
| 4594 | + | |
| 4595 | + | |
| 4596 | + | |
4544 | 4597 | | |
4545 | 4598 | | |
4546 | 4599 | | |
| |||
4607 | 4660 | | |
4608 | 4661 | | |
4609 | 4662 | | |
4610 | | - | |
4611 | | - | |
| 4663 | + | |
| 4664 | + | |
4612 | 4665 | | |
4613 | 4666 | | |
4614 | 4667 | | |
| |||
5471 | 5524 | | |
5472 | 5525 | | |
5473 | 5526 | | |
| 5527 | + | |
| 5528 | + | |
| 5529 | + | |
| 5530 | + | |
| 5531 | + | |
| 5532 | + | |
| 5533 | + | |
5474 | 5534 | | |
5475 | 5535 | | |
5476 | 5536 | | |
| |||
0 commit comments