Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
680f7fc
feat(T-0889): parameterized-workflow gold-path example — declared par…
Jul 11, 2026
37c8494
feat(T-0890): workflow-secrets gold-path example + three server fixes…
Jul 12, 2026
96db60f
fix(T-0895): secrets now cross the plugin boundary — packaged tasks c…
Jul 12, 2026
24d22f9
docs(metis): T-0890 + T-0895 complete — packaged-task secrets verifie…
Jul 12, 2026
e917f97
docs(metis): T-0891 grounded design + T-0896 filed (polling/batch sil…
Jul 12, 2026
cfa8b6c
fix(T-0897)+feat(T-0891): task-to-CG invocation compiles in packaged …
Jul 12, 2026
428b4b7
chore(T-0891): keep cg-feature-tour intact; defer kafka streaming to …
Jul 12, 2026
8b494eb
docs(metis): T-0898 filed (kafka->provider migration); T-0891 invocat…
Jul 12, 2026
315cd91
feat(T-0885): canonical Python packaged example — the Python peer of …
Jul 12, 2026
8f28bf9
docs(metis): T-0885 complete — Python packaged gold path verified
Jul 12, 2026
6c10714
feat(T-0885): Python params example + fix(T-0899): comment-aware Pyth…
Jul 12, 2026
1f27583
feat(T-0885): Python secrets example + extend fix(T-0899): scanner ig…
Jul 12, 2026
00bba77
docs(metis): T-0899 docstring-scan extension recorded
Jul 12, 2026
53f92bb
refactor(harness): discovery-driven packaged-example registrar — no b…
Jul 12, 2026
4600b6d
feat(python coverage): boundary_schema typed accumulator inject on th…
Jul 12, 2026
5987308
feat(T-0900): re-author stale packaged examples to lean version deps …
Jul 12, 2026
81a3064
docs(metis): T-0900 progress — 3/4 stale packaged examples re-authore…
Jul 12, 2026
5a5768a
feat(T-0900): packaged-triggers is now a REAL poll-trigger example (w…
Jul 12, 2026
a931990
feat(I-0138): python-triggers — packaged Python poll-trigger example …
Jul 12, 2026
b161f58
feat(I-0138): python-retries — packaged Python retry-policy example o…
Jul 12, 2026
bdb17c5
feat(I-0138): python-conditional — packaged Python trigger_rules/Skip…
Jul 12, 2026
dfb4215
feat(I-0138): python-cron — packaged Python cron-trigger example on t…
Jul 12, 2026
9ccc949
feat(I-0138): python-multi-tenant example — surfaces a real cross-ten…
Jul 12, 2026
3147128
fix(T-0901): gate execute on the calling tenant's own registry — clos…
Jul 12, 2026
dda3c8e
test(integration): unblock the integration suite + fix 3 latent test …
Jul 13, 2026
43c5276
ci: fix 3 pre-existing failures unrelated to the I-0138 changes
Jul 13, 2026
e41dce7
ci: packaged-workflows lane provides required param + postgres reset …
Jul 13, 2026
1d5093f
feat(I-0138): python-stateful-graph — packaged Python state-accumulat…
Jul 14, 2026
95a719b
feat(I-0138): python-batch-graph — packaged Python batch-accumulator …
Jul 14, 2026
d2043bb
fix(T-0896): implement packaged BATCH accumulator factory + loud fall…
Jul 14, 2026
b010dbe
fix(T-0896): implement packaged POLLING accumulator (in-process Pytho…
Jul 14, 2026
88b880a
docs(metis): T-0896 complete — packaged batch + polling accumulators …
Jul 14, 2026
c472bcf
ci: reclaim ~18GB of unused runner SDKs before build-heavy jobs
Jul 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 45 additions & 5 deletions .angreal/demos/_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,16 +45,56 @@ def get_rust_feature_directories():
features_dir = PROJECT_ROOT / "examples" / "features"
if not features_dir.exists():
return []
# Exclude examples that are libraries or not meant to be executed directly
excluded = {"validation-failures", "complex-dag", "packaged-workflows", "simple-packaged", "packaged-triggers", "python-workflow"}
# An example dir is EITHER embedded (has src + Cargo, run via `cargo run` —
# returned here) OR packaged (has a `package.toml`, run through the server
# gold path — discovered separately by `get_packaged_example_directories`).
# `package.toml` presence is the discriminator, so the two registrars never
# overlap and a packaged example can never be mis-registered as `cargo run`.
# A couple of embedded dirs are still hand-excluded: python-workflow is a
# bespoke wheel demo; validation-failures is a negative fixture.
excluded = {"validation-failures", "python-workflow"}
results = []
for capability in ["workflows", "computation-graphs"]:
scan_dir = features_dir / capability
if scan_dir.exists():
for d in scan_dir.iterdir():
if d.is_dir() and d.name not in excluded:
rel_path = f"examples/features/{capability}/{d.name}"
results.append((d.name, rel_path))
if not d.is_dir() or d.name in excluded:
continue
if (d / "package.toml").exists():
continue # packaged → the gold-path registrar owns it
rel_path = f"examples/features/{capability}/{d.name}"
results.append((d.name, rel_path))
return results


def get_packaged_example_directories():
"""Every packaged example (a dir with a `package.toml`) under
examples/features/, with its parsed manifest metadata. These run through
the SERVER gold path (pack → upload → compile → reconcile → execute), so
the packaged registrar drives them — never `cargo run`.

Returns (name, rel_path, meta) tuples where meta has `workflow_name` and/or
`graph_name` (whichever the package declares).
"""
features_dir = PROJECT_ROOT / "examples" / "features"
if not features_dir.exists():
return []
results = []
for capability in ["workflows", "computation-graphs"]:
scan_dir = features_dir / capability
if not scan_dir.exists():
continue
for d in sorted(scan_dir.iterdir()):
pt = d / "package.toml"
if not d.is_dir() or not pt.exists():
continue
meta = {}
for line in pt.read_text().splitlines():
line = line.strip()
for key in ("workflow_name", "graph_name"):
if line.startswith(key) and "=" in line:
meta[key] = line.split("=", 1)[1].strip().strip('"')
results.append((d.name, f"{capability}/{d.name}", meta))
return results


Expand Down
Loading
Loading