bead: spaxel-dz5s - proactive quality prompts already implemented
The proactive quality prompt system for link degradation warnings is already fully implemented:
- dashboard/js/proactive.js: monitorLinkQuality() tracks links with quality < 0.6
- 5-minute sustained drop threshold (DURATION_MS = 5 * 60 * 1000)
- Non-blocking dismissible prompt card with 'Diagnose' and 'Dismiss for today' buttons
- Pulsing amber highlight (0xff9800) on 3D link lines via startLinkPulsing()
- diagnoseLink() fetches from /api/diagnostics/link/{linkID}
- Dismissed prompts tracked in localStorage, cleared on recovery
- mothership/internal/diagnostics/linkweather.go: GetDiagnosticFor() method
- Returns Diagnosis with Title, Detail, Advice, Severity, ConfidenceScore
- Root cause analysis for environmental changes, WiFi congestion, metal interference, Fresnel blockage, periodic interference
- mothership/cmd/mothership/main.go: API endpoint /api/diagnostics/link/{linkID}
- Handles optional timestamp parameter
- Returns diagnosis with repositioning suggestions if applicable
All acceptance criteria met:
- Prompt appears within 5 minutes of sustained drop ✓
- No prompt for transient drops (< 5 min) ✓
- Diagnose button shows root cause ✓
- Dismissed prompts don't re-appear unless condition reoccurs after recovery ✓
- Pulsing amber highlight on 3D link line ✓
This commit is contained in:
parent
fea14268b2
commit
a1a87babe7
13 changed files with 5955 additions and 49 deletions
File diff suppressed because one or more lines are too long
|
|
@ -5,11 +5,11 @@
|
|||
"model": "claude-sonnet-4-6",
|
||||
"exit_code": 0,
|
||||
"outcome": "success",
|
||||
"duration_ms": 14841,
|
||||
"duration_ms": 436868,
|
||||
"input_tokens": null,
|
||||
"output_tokens": null,
|
||||
"cost_usd": null,
|
||||
"captured_at": "2026-05-04T03:32:53.834616995Z",
|
||||
"captured_at": "2026-05-04T03:54:29.391984490Z",
|
||||
"trace_format": "claude_json",
|
||||
"pruned": false,
|
||||
"template_version": null
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
16
.beads/traces/spaxel-qlh/metadata.json
Normal file
16
.beads/traces/spaxel-qlh/metadata.json
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"bead_id": "spaxel-qlh",
|
||||
"agent": "claude-code-glm-4.7",
|
||||
"provider": "zai",
|
||||
"model": "glm-4.7",
|
||||
"exit_code": 0,
|
||||
"outcome": "success",
|
||||
"duration_ms": 211763,
|
||||
"input_tokens": null,
|
||||
"output_tokens": null,
|
||||
"cost_usd": null,
|
||||
"captured_at": "2026-05-04T03:25:13.312108065Z",
|
||||
"trace_format": "claude_json",
|
||||
"pruned": false,
|
||||
"template_version": null
|
||||
}
|
||||
0
.beads/traces/spaxel-qlh/stderr.txt
Normal file
0
.beads/traces/spaxel-qlh/stderr.txt
Normal file
1514
.beads/traces/spaxel-qlh/stdout.txt
Normal file
1514
.beads/traces/spaxel-qlh/stdout.txt
Normal file
File diff suppressed because one or more lines are too long
16
.beads/traces/spaxel-v5p2/metadata.json
Normal file
16
.beads/traces/spaxel-v5p2/metadata.json
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"bead_id": "spaxel-v5p2",
|
||||
"agent": "claude-code-glm-4.7",
|
||||
"provider": "zai",
|
||||
"model": "glm-4.7",
|
||||
"exit_code": 0,
|
||||
"outcome": "success",
|
||||
"duration_ms": 360058,
|
||||
"input_tokens": null,
|
||||
"output_tokens": null,
|
||||
"cost_usd": null,
|
||||
"captured_at": "2026-05-04T04:07:30.533539241Z",
|
||||
"trace_format": "claude_json",
|
||||
"pruned": false,
|
||||
"template_version": null
|
||||
}
|
||||
0
.beads/traces/spaxel-v5p2/stderr.txt
Normal file
0
.beads/traces/spaxel-v5p2/stderr.txt
Normal file
2880
.beads/traces/spaxel-v5p2/stdout.txt
Normal file
2880
.beads/traces/spaxel-v5p2/stdout.txt
Normal file
File diff suppressed because one or more lines are too long
|
|
@ -1 +1 @@
|
|||
e7605d8e45873dd2063addf459b7a53aa2e5e65a
|
||||
78884f1fd1e717f871bc5a3868c74572a9fe74fe
|
||||
|
|
|
|||
|
|
@ -84,6 +84,7 @@ func SubscribeDefault(fn Subscriber) {
|
|||
type Bus struct {
|
||||
mu sync.RWMutex
|
||||
subscribers []Subscriber
|
||||
inFlight sync.WaitGroup
|
||||
}
|
||||
|
||||
// New creates a new event bus.
|
||||
|
|
|
|||
Binary file not shown.
BIN
mothership/sim
BIN
mothership/sim
Binary file not shown.
Loading…
Add table
Reference in a new issue