Skip to content

[JOI-7/15] feat(frontend): add Friction Log page - #1937

Open
salmonumbrella wants to merge 73 commits into
kenn-io:mainfrom
salmonumbrella:feat/friction-log-pr07
Open

salmonumbrella wants to merge 73 commits into
kenn-io:mainfrom
salmonumbrella:feat/friction-log-pr07

Conversation

@salmonumbrella

@salmonumbrella salmonumbrella commented Sep 24, 2026 •

Copy link
Copy Markdown
Contributor

What changed

  • Adds the Friction Log page with dated digests, P0 alerts, recurring patterns, findings, spend, Markdown export, and an on-demand build action where the server allows it.
  • Links stored findings from the session signal panel and adds Friction Log navigation from Quality.

Friction Log page with synthetic example sessions

Why

The API and CLI expose the review, but users need to see what happened on a given day and follow a finding back to the exact session message before acting on it.

Usage

Open Friction Log from the header or /friction. Choose a date, inspect the linked findings, or use Build now for missing completed days. Read-only servers show stored digests without the build action.

Part 7 of 15 in the stacked Friction Log series. Depends on #1936; screenshot asset #1939 supports its docs check. GitHub shows the cumulative diff against main; review the PR07-only diff. Merge PR06 first. Refresh this branch against main and confirm its diff is scoped to PR07 before merging.

Refs #1908

@roborev-ci

roborev-ci Bot commented Sep 24, 2026

Copy link
Copy Markdown

roborev: Combined Review (d8e7902)

Verdict: Changes require fixes for 4 findings.

Medium

  • cmd/agentsview/main.go:323: Production sync engines never receive FrictionConfig, so configured seat patterns are parsed and validated but never recorded; disabling friction also stops only the digest runner while findings continue to be computed and persisted. Wire the compiled dimension resolver and enabled flag into every production engine construction path, and gate friction computation and backfill accordingly.

    Reported by: codex

  • internal/db/friction_digest.go:85; internal/db/friction_list.go:133: Read-only archives may omit friction tables, but higher-level friction queries directly access them and fail with missing-table errors instead of returning empty results. Apply optional-table capability checks to every friction reader or branch queries when optional tables are absent.

    Reported by: codex

  • internal/server/huma_routes_metadata.go:181; frontend/src/lib/components/layout/AppHeader.svelte:98: friction_available depends on a write runner, causing read-only servers with stored digests to hide the Friction Log entirely. Expose separate read and build capabilities; use read capability for navigation and digest reads, and build capability only for review execution.

    Reported by: codex

  • internal/service/friction_direct.go:11: directBackend.SupportsFriction always returns true, so PostgreSQL, DuckDB, and ClickHouse paths can advertise friction tools without verified read-table support and fail at runtime. Base capability reporting on verified friction read support and suppress MCP tool registration for unsupported backends.

    Reported by: codex


Reviewers: 2 done | Synthesis: codex, 9s | Total: 18m47s

@salmonumbrella salmonumbrella changed the title [JOI-7/9] feat(frontend): add Friction Log page [JOI-7/15] feat(frontend): add Friction Log page Sep 24, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant