Skip to content

fix: docs dashboard — graph edges, stats counting, model/provider resolution#689

Merged
Muizzkolapo merged 5 commits into
mainfrom
fix/docs-lineage-edges
Jun 14, 2026
Merged

fix: docs dashboard — graph edges, stats counting, model/provider resolution#689
Muizzkolapo merged 5 commits into
mainfrom
fix/docs-lineage-edges

Conversation

@Muizzkolapo

@Muizzkolapo Muizzkolapo commented Jun 14, 2026

Copy link
Copy Markdown
Owner

Summary

Three bugs in the docs dashboard fixed:

  1. Graph edges missing — when two workflows share action names, the frontend merged all actions into one flat dict with collision-based prefixing (wfId__actionName). Deps referenced unprefixed names → ReactFlow silently dropped all edges. Fix: always scope keys as wfId/actionName, resolve deps within workflow scope.

  2. Stats show llm_actions=0, tool_actions=0 — generator checked action.get("kind") but parser stores action["type"]. Fix: "kind""type".

  3. Model/provider show "unknown" — parser only checked action-level config, ignoring workflow defaults. Fix: fall back to defaults.get("model_vendor") / defaults.get("model_name").

Files changed

Frontend (namespace fix)

File Change
lib/transformers.ts Always key as wfId/actionName, remove collision logic
lib/dag-transformer.ts Node IDs use full key, deps resolve within workflow scope
components/screens/actions-screen.tsx Display short name, full key for lookups
components/screens/workflows-screen.tsx Display short name, resolve dep clicks
components/screens/data-screen.tsx Direct wfId/actionName lookup (removes double-lookup hack)
components/command-search.tsx Display short name

Backend (data generation)

File Change
generator.py Stats: action.get("kind")action.get("type")
parser.py Model/provider: inherit from workflow defaults

Verification

  • npm run build passes
  • pytest → 7494 passed, 2 skipped
  • ruff check → all checks passed
  • Confirmed catalog.json has 113 valid inter-action edges for qanalabs_quiz_gen

…e fix

The frontend merged all workflows into a single flat Record<string, Action>
with collision-based prefixing (wfId__actionName). This broke edges in the
workflow graph because deps referenced unprefixed names while node IDs were
prefixed. It also required double-lookup hacks in data-screen.tsx.

Root fix: always key actions as wfId/actionName. No collision detection,
no conditional prefixing, no dep fixup pass.

- transformers.ts: key = wfId/actionName, remove collision logic
- dag-transformer.ts: node IDs use full key, deps resolve within workflow
  scope, skip deps that don't map to a node (e.g., "source")
- actions-screen.tsx: display short name, use full key for lookups,
  resolve dep clicks within workflow
- workflows-screen.tsx: display short name, resolve dep clicks
- data-screen.tsx: use wfId/actionName directly (no double-lookup)
- command-search.tsx: display short name
@Muizzkolapo Muizzkolapo force-pushed the fix/docs-lineage-edges branch from 64cd384 to 8036093 Compare June 14, 2026 16:07
Two bugs in the catalog generator:

1. Stats counted action.get("kind") but parser stores action["type"].
   Result: llm_actions=0, tool_actions=0 in every catalog.

2. Model/provider not inherited from workflow defaults. Parser only
   checked action-level config, ignoring defaults. Result: every
   action showed model="unknown", provider="unknown".

Rebuilt frontend out/ and docs_site/.
@Muizzkolapo Muizzkolapo changed the title fix: docs workflow graph missing edges when workflows share action names fix: docs dashboard — graph edges, stats counting, model/provider resolution Jun 14, 2026
@Muizzkolapo Muizzkolapo merged commit 19c6534 into main Jun 14, 2026
5 checks passed
@github-actions github-actions Bot locked and limited conversation to collaborators Jun 14, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant