79 lines
2.7 KiB
Markdown
79 lines
2.7 KiB
Markdown
---
|
|||
|
|
phase: 09-frequency-design-and-group-architecture
|
||
|
|
plan: "02"
|
||
|
|
subsystem: config
|
||
|
|
tags: [frequency-design, auto-assign, collision-prevention, test-update]
|
||
|
|
dependency_graph:
|
||
|
|
requires: []
|
||
|
|
provides: [updated-autoAssignFreq-range, collision-free-auto-assign]
|
||
|
|
affects: [config/config.go, config/config_test.go]
|
||
|
|
tech_stack:
|
||
|
|
added: []
|
||
|
|
patterns: [FNV-32a hash, deterministic frequency assignment]
|
||
|
|
key_files:
|
||
|
|
created: []
|
||
|
|
modified:
|
||
|
|
- config/config.go
|
||
|
|
- config/config_test.go
|
||
|
|
decisions:
|
||
|
|
- "autoAssignFreq range moved to [2500, 4000] Hz with numSteps=31 (50 Hz steps) to guarantee 51 Hz gap above max built-in frequency of 2449 Hz"
|
||
|
|
- "TestAutoFreqSkipsBuiltins updated to expect 150.0 for HTTPS (coordinated with Plan 01 rebalancing)"
|
||
|
|
metrics:
|
||
|
|
duration: "~3 min"
|
||
|
|
completed: "2026-03-27"
|
||
|
|
tasks_completed: 2
|
||
|
|
files_modified: 2
|
||
|
|
---
|
||
|
|
|
||
|
|
# Phase 9 Plan 2: Auto-Assign Frequency Range Update Summary
|
||
|
|
|
||
|
|
Update autoAssignFreq to use [2500, 4000] Hz with 31 steps of 50 Hz, ensuring no collision with any built-in frequency (max 2449 Hz after Phase 9 Plan 1 rebalancing).
|
||
|
|
|
||
|
|
## What Was Built
|
||
|
|
|
||
|
|
Updated the `autoAssignFreq` function constants and corresponding test assertions so user-defined traffic classes are always assigned frequencies in the [2500, 4000] Hz range, safely above all built-in protocol frequencies.
|
||
|
|
|
||
|
|
## Tasks Completed
|
||
|
|
|
||
|
|
| Task | Name | Commit | Files |
|
||
|
|
|------|------|--------|-------|
|
||
|
|
| 1 | Update autoAssignFreq constants and comment | 8ae1ddc | config/config.go |
|
||
|
|
| 2 | Update config_test.go auto-assign range assertion | dbcbeb3 | config/config_test.go |
|
||
|
|
|
||
|
|
## Changes Made
|
||
|
|
|
||
|
|
### Task 1: config/config.go
|
||
|
|
|
||
|
|
- Changed `baseHz` constant from `1200.0` to `2500.0`
|
||
|
|
- Changed `numSteps` from `uint32(24)` to `uint32(31)` (covers [2500, 4000] in 50 Hz steps: 2500 + 30*50 = 4000)
|
||
|
|
- Updated function comment from `[1200, 2350]` to `[2500, 4000]`
|
||
|
|
- `stepHz = 50.0` unchanged
|
||
|
|
|
||
|
|
### Task 2: config/config_test.go
|
||
|
|
|
||
|
|
- Updated `TestAutoFreqAssignment` comment from `[1200, 2350]` to `[2500, 4000]`
|
||
|
|
- Updated range bounds assertion from `< 1200.0 || > 2350.0` to `< 2500.0 || > 4000.0`
|
||
|
|
- Updated `TestAutoFreqSkipsBuiltins` HTTPS expected value from `175.0` to `150.0` (coordinated with Plan 01 HTTPS rebalancing)
|
||
|
|
|
||
|
|
## Verification Results
|
||
|
|
|
||
|
|
- `go build ./config/...` exits 0
|
||
|
|
- `TestAutoFreqAssignment` passes
|
||
|
|
- `TestAutoFreqDeterministic` passes
|
||
|
|
- `TestAutoFreqSkipsBuiltins` will pass once Plan 01 updates HTTPS BaseHz to 150.0
|
||
|
|
|
||
|
|
## Deviations from Plan
|
||
|
|
|
||
|
|
None - plan executed exactly as written.
|
||
|
|
|
||
|
|
## Known Stubs
|
||
|
|
|
||
|
|
None.
|
||
|
|
|
||
|
|
## Self-Check: PASSED
|
||
|
|
|
||
|
|
- config/config.go contains `baseHz = 2500.0`: FOUND
|
||
|
|
- config/config.go contains `numSteps = uint32(31)`: FOUND
|
||
|
|
- config/config_test.go contains `cfg.BaseHz < 2500.0 || cfg.BaseHz > 4000.0`: FOUND
|
||
|
|
- Commits 8ae1ddc and dbcbeb3 exist in git log
|