Skip to content

feat(dashboard): redesign graph tab as tactic proof tree#5

Merged
markm39 merged 1 commit into
masterfrom
feat/proof-tree-graph
Mar 28, 2026
Merged

feat(dashboard): redesign graph tab as tactic proof tree#5
markm39 merged 1 commit into
masterfrom
feat/proof-tree-graph

Conversation

@markm39
Copy link
Copy Markdown
Collaborator

@markm39 markm39 commented Mar 28, 2026

Summary

  • Replace the mixed ProofNode/Branch/Goal graph with a proper tactic proof tree
  • Goals are nodes, tactics are edges, with click-to-expand detail
  • Add solved_by attribution field to ProofGoal (agent role or None for BFS)
  • Wire BFS search to emit live ProofGoalUpdated events via callback
  • Frontier nodes (open leaves) and in-progress nodes pulse visually

Changes across crates

  • openproof-protocol: Add solved_by: Option<String> to ProofGoal
  • openproof-search: Add on_goal_update callback to both search functions; extract LSP search to lsp_search.rs
  • openproof-cli: Wire callback in autonomous.rs to send ProofGoalUpdated events
  • openproof-core: Mark goals as Closed when BFS solves in apply.rs
  • openproof-dashboard: Complete rewrite of graph.js as goal-centric tree

Test plan

  • cargo test --workspace passes
  • cargo clippy --workspace -- -D warnings clean
  • Open dashboard, verify empty state shows "No proof goals yet"
  • Start a BFS proof, verify goals appear as tree nodes with tactic edge labels
  • Verify closed goals show "bfs" or "agent:prover" attribution badges
  • Verify open leaf nodes pulse as BFS frontier
  • Click a node to expand full goal text and failed tactics list

Replace the mixed ProofNode/Branch/Goal graph with a proper tactic proof
tree rooted at the top-level goal. Goals are nodes, tactics are edges,
and attribution shows whether goals were closed by agents or BFS.

Protocol:
- Add `solved_by` field to ProofGoal for agent attribution (None = BFS)

Search engine:
- Add `on_goal_update` callback to both search functions that emits
  ProofGoal updates as the search progresses (root, children, solved)
- Extract LSP search into lsp_search.rs to keep search.rs under 500 lines
- Add openproof-protocol dependency to openproof-search

Event wiring:
- autonomous.rs passes callback that sends ProofGoalUpdated events
- apply.rs marks matching proof goals as Closed when BFS solves a sorry

Frontend:
- Rewrite graph.js as goal-centric tactic tree with tree layout algorithm
- Clickable nodes expand to show full goal text and failed tactics
- Attribution badges: "bfs", "agent:prover", "agent:repairer", etc.
- Frontier nodes (open leaves) pulse with amber glow
- In-progress nodes pulse with blue glow
- Stats bar shows total/closed/open/failed/frontier counts
@markm39 markm39 force-pushed the feat/proof-tree-graph branch from c1cedcd to fce2cba Compare March 28, 2026 14:44
@markm39 markm39 merged commit 4affffa into master Mar 28, 2026
3 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.

1 participant