Skip to content

feat: redesign test selection cards with expand/collapse and badges#24

Merged
simsteward merged 8 commits intomainfrom
feature/test-selection-redesign
Mar 26, 2026
Merged

feat: redesign test selection cards with expand/collapse and badges#24
simsteward merged 8 commits intomainfrom
feature/test-selection-redesign

Conversation

@simsteward
Copy link
Copy Markdown
Owner

Test cards now have a clickable header that expands to show description, signal event name, pass criteria, dependencies, and sub-steps. Added color-coded badges for test group, dependency, and feature-flag status.

wgutmann and others added 3 commits March 25, 2026 22:24
Test cards now have a clickable header that expands to show description,
signal event name, pass criteria, dependencies, and sub-steps. Added
color-coded badges for test group, dependency, and feature-flag status.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add claude.yml for @claude PR/issue mentions and claude-fix-tests.yml
to auto-fix failing tests. Remove redundant secrets-scan.yml (Gitleaks
already runs in security-scan.yml).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Comment on lines +18 to +21
- uses: actions/checkout@v4
with:
ref: ${{ github.event.workflow_run.head_branch }}
fetch-depth: 1

Check warning

Code scanning / Semgrep OSS

Semgrep Finding: yaml.github-actions.security.workflow-run-target-code-checkout.workflow-run-target-code-checkout Warning

This GitHub Actions workflow file uses workflow_run and checks out code from the incoming pull request. When using workflow_run, the Action runs in the context of the target repository, which includes access to all repository secrets. Normally, this is safe because the Action only runs code from the target repository, not the incoming PR. However, by checking out the incoming PR code, you're now using the incoming code for the rest of the action. You may be inadvertently executing arbitrary code from the incoming PR with access to repository secrets, which would let an attacker steal repository secrets. This normally happens by running build scripts (e.g., npm build and make) or dependency installation scripts (e.g., python setup.py install). Audit your workflow file to make sure no code from the incoming PR is executed. Please see https://securitylab.github.com/research/github-actions-preventing-pwn-requests/ for additional mitigations.
wgutmann and others added 5 commits March 26, 2026 00:37
- Merged ~/.claude/hooks/loki-log.js and scripts/hooks/loki-log.js into
  a single canonical file. Both now identical. Key changes:
  - Incremental transcript parsing (O(new bytes)) from stop hook
  - Full parse at session-end with cost_usd + effort detection
  - app="claude-token-metrics" push (session-end, one per session)
  - app="claude-dev-logging" component=tokens (stop hook, intermediate)
  - session_duration_ms/compaction_count excluded from token metrics stream
  - cleanupTokenFiles() at session-end to remove offset tracking state

- Added LokiPushClient.cs: fire-and-forget Loki push for C# plugin.
  Activated by SIMSTEWARD_LOKI_URL env var; replaces Alloy file-tailing.

- PluginLogger.cs: push each 500ms flush batch to Loki via LokiPushClient.
  On-disk plugin-structured.jsonl still written as local backup.

- docker-compose.yml: removed otel-collector, prometheus, alloy services.
  Stack is now: loki, loki-gateway, grafana, data-api (4 containers).
  Grafana no longer depends on prometheus.

- config.alloy: retired with tombstone comment explaining replacement.
- .env.observability.example: removed SIMSTEWARD_DATA_PATH (Alloy-only).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
extractTokensIncremental now returns { turn, total } — the delta for
the current response and the running session total separately.

stop hook pushes claude_turn_tokens to claude-dev-logging/tokens with:
- turn_input/output/cache_creation/cache_read/total_tokens (this call)
- turn_tool_use_count (tools called this turn)
- total_* running totals for trend lines
- session_id for correlation with lifecycle events

session-end continues to push the authoritative summary to
app="claude-token-metrics" with cost_usd + effort.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- effort: low | med | high | max (maps Claude Code effortLevel)
  Detection order: transcript metadata → ~/.claude/settings.json fallback
  Default: high (Claude Code default)
- thinking: boolean — true when transcript contains thinking blocks
  Separate from effort so both dimensions are independently queryable

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds a Session variable (single-select, All = no filter) that filters
every panel in the dashboard by session_id, enabling drill-down from
the cost summary into a specific session's metrics.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Complete rewrite of the Grafana dashboard to fix visual rendering at
5m/15m/30m time ranges. Key changes:

- Switch timeseries panels from count_over_time to rate()*60 so
  values normalize per-minute regardless of bucket size
- Remove interval floor so Grafana uses natural fine-grained steps
  (avoids cliff edges from coarse 1m buckets at short ranges)
- Switch drawStyle from bars to smooth area lines (spanNulls: true +
  lineInterpolation: smooth) so bursty activity reads as curves
- Fix all bar/table panels (Hook Type, Top Tools, Agent Events,
  Cross-Session) to use table type with options.sortBy for reliable
  descending sort in Grafana 11
- Add percentage display on Hook Type and Top Tools via binary
  division against total count
- Replace Agent Lifecycle Timeline (broken state-timeline) with Agent
  Events sorted table
- Remove Log Stream row entirely (visuals-only dashboard)
- Fix JSON label explosion by using selective field extraction:
  | json hook_type, tool_name, session_id instead of | json

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@simsteward simsteward merged commit 5dd9811 into main Mar 26, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants