Add unit tests for various components and stores in the terminal dashboard

- Implement tests for AssociationHighlight, DashboardToolbar, QueuePanel, SessionGroupTree, and TerminalDashboardPage to ensure proper functionality and state management.
- Create tests for cliSessionStore, issueQueueIntegrationStore, queueExecutionStore, queueSchedulerStore, sessionManagerStore, and terminalGridStore to validate state resets and workspace scoping.
- Mock necessary dependencies and state management hooks to isolate tests and ensure accurate behavior.
This commit is contained in:
catlog22
2026-03-08 21:38:20 +08:00
parent 9aa07e8d01
commit 62d8aa3623
157 changed files with 36544 additions and 71 deletions

View File

@@ -0,0 +1,122 @@
## TASK ASSIGNMENT
### MANDATORY FIRST STEPS
1. Read shared discoveries: {session_folder}/discoveries.ndjson (if exists, skip if not)
2. Read project context: .workflow/project-tech.json (if exists)
3. Read task schema: .codex/skills/team-perf-opt/schemas/tasks-schema.md
---
## Your Task
**Task ID**: {id}
**Title**: {title}
**Description**: {description}
**Role**: {role}
**Bottleneck Type**: {bottleneck_type}
**Priority**: {priority}
**Target Files**: {target_files}
### Previous Tasks' Findings (Context)
{prev_context}
---
## Execution Protocol
1. **Read discoveries**: Load {session_folder}/discoveries.ndjson for shared exploration findings
2. **Use context**: Apply previous tasks' findings from prev_context above
3. **Execute by role**:
**If role = profiler**:
- Detect project type by scanning for framework markers:
- Frontend (React/Vue/Angular): render time, bundle size, FCP/LCP/CLS
- Backend Node (Express/Fastify/NestJS): CPU hotspots, memory, DB queries
- Native/JVM Backend (Cargo/Go/Java): CPU, memory, GC tuning
- CLI Tool: startup time, throughput, memory peak
- Trace hot code paths and CPU hotspots within target scope
- Identify memory allocation patterns and potential leaks
- Measure I/O and network latency where applicable
- Collect quantified baseline metrics (timing, memory, throughput)
- Rank top 3-5 bottlenecks by severity (Critical/High/Medium)
- Record evidence: file paths, line numbers, measured values
- Write `{session_folder}/artifacts/baseline-metrics.json` (metrics)
- Write `{session_folder}/artifacts/bottleneck-report.md` (ranked bottlenecks)
**If role = strategist**:
- Read bottleneck report and baseline from {session_folder}/artifacts/
- For each bottleneck, select optimization strategy by type:
- CPU: algorithm optimization, memoization, caching, worker threads
- MEMORY: pool reuse, lazy init, WeakRef, scope cleanup
- IO: batching, async pipelines, streaming, connection pooling
- NETWORK: request coalescing, compression, CDN, prefetching
- RENDERING: virtualization, memoization, CSS containment, code splitting
- DATABASE: index optimization, query rewriting, caching layer
- Prioritize by impact/effort: P0 (high impact+low effort) to P3
- Assign unique OPT-IDs (OPT-001, 002, ...) with non-overlapping file targets
- Define measurable success criteria (target metric value or improvement %)
- Write `{session_folder}/artifacts/optimization-plan.md`
**If role = optimizer**:
- Read optimization plan from {session_folder}/artifacts/optimization-plan.md
- Apply optimizations in priority order (P0 first)
- Preserve existing behavior -- optimization must not break functionality
- Make minimal, focused changes per optimization
- Add comments only where optimization logic is non-obvious
- Preserve existing code style and conventions
**If role = benchmarker**:
- Read baseline from {session_folder}/artifacts/baseline-metrics.json
- Read plan from {session_folder}/artifacts/optimization-plan.md
- Run benchmarks matching detected project type:
- Frontend: bundle size, render performance
- Backend: endpoint response times, memory under load, DB query times
- CLI: execution time, memory peak, throughput
- Run test suite to verify no regressions
- Collect post-optimization metrics matching baseline format
- Calculate improvement percentages per metric
- Compare against plan success criteria
- Write `{session_folder}/artifacts/benchmark-results.json`
- Set verdict: PASS (meets criteria) / WARN (partial) / FAIL (regression or criteria not met)
**If role = reviewer**:
- Read plan from {session_folder}/artifacts/optimization-plan.md
- Review changed files across 5 dimensions:
- Correctness: logic errors, race conditions, null safety
- Side effects: unintended behavior changes, API contract breaks
- Maintainability: code clarity, complexity increase, naming
- Regression risk: impact on unrelated code paths
- Best practices: idiomatic patterns, no optimization anti-patterns
- Write `{session_folder}/artifacts/review-report.md`
- Set verdict: APPROVE / REVISE / REJECT
4. **Share discoveries**: Append exploration findings to shared board:
```bash
echo '{"ts":"<ISO8601>","worker":"{id}","type":"<type>","data":{...}}' >> {session_folder}/discoveries.ndjson
```
5. **Report result**: Return JSON via report_agent_job_result
### Discovery Types to Share
- `bottleneck_found`: `{type, location, severity, description}` -- Bottleneck identified
- `hotspot_found`: `{file, function, cpu_pct, description}` -- CPU hotspot
- `memory_issue`: `{file, type, size_mb, description}` -- Memory problem
- `io_issue`: `{operation, latency_ms, description}` -- I/O issue
- `db_issue`: `{query, latency_ms, description}` -- Database issue
- `file_modified`: `{file, change, lines_added}` -- File change recorded
- `metric_measured`: `{metric, value, unit, context}` -- Metric measured
- `pattern_found`: `{pattern_name, location, description}` -- Pattern identified
- `artifact_produced`: `{name, path, producer, type}` -- Deliverable created
---
## Output (report_agent_job_result)
Return JSON:
{
"id": "{id}",
"status": "completed" | "failed",
"findings": "Key discoveries and implementation notes (max 500 chars)",
"verdict": "PASS|WARN|FAIL|APPROVE|REVISE|REJECT or empty",
"artifacts_produced": "semicolon-separated artifact paths",
"error": ""
}