Epic: Flows as Python, Visualization Always On #10
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
PRD:
docs/flows-as-python.mdThe DAG-as-JSON authoring model is being deleted. Flows become Python functions decorated with
@flow(...), withwith flow.step(name):blocks for named steps. A span tree is emitted at runtime and rendered live in the UI. One authoring mode, one viewer, zero hand-written SDK code in consumer repos.Prerequisites
(hero_rpc#30 was closed — its scope moved into hero_logic#11. Tracing helpers live in hero_logic, not in the generator.)
Stories
All-at-once release. No DAG back-compat. Rollout: Story 1 → (Story 2 + Story 3 in parallel).
hero_tracing.py+ span socket listener — #11Out of scope
Done when
node_runs/Node/Edge/template_loader.rs/node_executors.rsdeleted from the codebaseAlignment review against
hero_router/docs/agentic_calling.mdThe doc is now the chosen architectural reference for Python-on-the-router execution. Three things tracked off the back of that:
Closed
LogicService.prefix. Landed in hero_router#40 (commit31ec54cd).~/.hero/var/router/python/hero_logic_client.pyalready exposes the 25 LogicService methods. Story 1 (#11)'s prerequisite is met.Promoted to prerequisite
rpc.discovercache) — was "land any time"; now a prerequisite for #13. Reason: Service Agent v3's library-first lookup + LLM-generated calls both depend on the cached client matching the live service. Ifrpc.discoverserves a stale embedded spec, the agent generates calls against a phantom API. Promote in priority alongside #13 kickoff.New
Doc gaps to close (low priority, won't block stories)
router/generated/{service}/{interface,client,md5}.py) doesn't match the actual flat layout (~/.hero/var/router/python/{service}_{client,interface}.py+.hash). Update so #11 implementers don't second-guess paths.hero_tracing.py/instrument(client)from #11 — worth a paragraph since instrumented clients are how span-tree visualization composes with the doc's "sandbox executes the generated script" picture.Net
Stories #11 / #12 / #13 are aligned with the doc. The two real risks are (1) cache drift via #32 and (2) the gap between "subprocess" and "sandbox" tracked in #14 — both are now visible and prioritized.