Skip to content

feat(factory): add explicit cell-driven DAG workflows - #4

Closed
wangtsiao wants to merge 34 commits into
mainfrom
feat/factory-dag-workflows-20261108
Closed

wangtsiao wants to merge 34 commits into
mainfrom
feat/factory-dag-workflows-20261108

Conversation

@wangtsiao

@wangtsiao wangtsiao commented Nov 8, 2026 •

Copy link
Copy Markdown
Owner

Summary

Add the first bounded Factory workflow slice over ordinary RLM children: strict versioned DAG validation, bounded fan-out, all-predecessor joins, output forwarding, fail-fast/continue policies, local status, and retryable stop/cleanup.

Admission is serialized per run. Interrupted or uncertain spawn outcomes retain a unique cleanup target and are never silently retried. Failed cleanup stays visible as stopping. There are no detached tasks and no new host permissions.

Dependency and deliberate limits

The default adapter requires the subagent-controls rlm.collect implementation and host route. On the current base without its Python API, starting a run fails before spawning a child. The backend interface and tests are independent so this can be reviewed alongside that dependency.

This is an experimental DAG slice, not complete Prime Factory parity. Runs advance only through advance / wait inside an active cell, with explicit enabled=True. No background continuation, restart recovery, persistent harness factory kind, UI, retries, guards, loops, foreach, resident agents, or machine library are claimed. The design and Prime comparison are in docs/factory-workflows.md.

Verification

  • Factory validation, scheduler, and adapter tests: 21 passed.
  • Entire Python runtime suite with dill 0.4.1: 98 tests passed, 3 platform-specific skips.
  • CI scope tests: 9 passed.
  • git diff --check: passed.
  • Real provider-backed Devo session and combined subagent-controls integration: not run yet; dependent work remains.

No merge or deployment is requested by this draft.

Superseded by the correctly targeted upstream draft: 7df-lab#270 . This fork-local PR was closed because its stale base included unrelated upstream commits.

onn and others added 30 commits October 25, 2026 00:20
- Handle error and response.failed events as terminal failures
- Classify exhausted credits as quota errors instead of retryable failures
- Preserve partial output without reporting successful completion
- Split Responses handling into focused modules
- Add provider, server replay, and TUI quota reporting regression tests
- Document conversation errors and quota recovery
Shell tools now run on the host through the trusted kernel bridge instead of the removed kernel fence and credential-grant channel. Session journal persistence, locking, deletion, and subagent resume paths are hardened alongside the installer runtime lock and docs migration.
Windows clippy -D unused-imports rejects the module-level super import when the module's only test is Unix-gated.
Reuse verified Windows ZIP packs and atomic installer locks. Recognize the current bubblewrap namespace-unavailable diagnostic without suppressing unrelated failures. Run the replacement kernel credential and protocol tests instead of an obsolete filter.
…shell

feat: move shell execution to the host and harden session journals
Preserve the original PR history while retaining the runtime packaging,
installer locking and CI capability detection fixes merged in 7df-lab#255.
Carry the user-guide documentation across its rename.
Preserve the original 7df-lab#254 commits and integrate them with the verified main branch from 7df-lab#255. All 24 executed checks passed on 3704443.
Remove only the credential-dependent tmux-live CI job and its exclusive secret-detection job. Preserve all credential-free tests and reusable TUI harnesses. All 23 CI and runtime-bundle checks passed on 301e969, synchronized with main after 7df-lab#254 integration.
* refactor: remove obsolete TUI and runtime scaffolding

* fix: remove the obsolete CLI launch import
* refactor: use live models.dev and pinned user connections

* fix: preserve inherited model when live catalog is empty
* refactor: unify skill loading and host-owned harness state

* test: make skill context regressions reproducible in CI
…df-lab#264)

* fix: align prompt contracts and wire agent and automation context

* fix: read ancestry without scheduling recovery and preserve task language

* fix: align activated child doctrine with host behavior
Wire Python model discovery and per-child model/thinking selection to configured routes, persist isolated bindings across continuation and recovery, and validate selectors and credentials without paid probes.

Verified by independent review and all 23 GitHub checks.
@wangtsiao wangtsiao closed this Nov 8, 2026
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