gsxdsm
f0fa75b270
fix(FN-6043): address stuck task PR feedback
...
- align triage prompt templates on impacted-first verification
- guard verification max lifetime when timeout is disabled
- share idle semaphore leak recovery across scheduler and triage
Fusion-Task-Id: FN-6043
2026-06-08 20:29:37 -07:00
gsxdsm
aa8bd3dc92
fix(FN-6043): recover stuck task processing
...
Fusion-Task-Id: FN-6043
2026-06-08 18:14:48 -07:00
gsxdsm
ce4d0a899f
FN-6008: document FTS migration defer evidence and align workflow IDs
...
Refresh the FTS migration guidance with fresh evidence and reconcile workflow interpreter naming.
- document post-FN-5943 production evidence showing the single-file tasks_fts index remains bounded and rebuild-free
- keep the storage guidance explicitly deferred until recurring corruption or sustained bloat is observed
- relax the foreach parser test to accept the current nested loop/foreach error wording
- align the authoritative workflow driver ID with the task branch change during conflict resolution
Files changed:
docs/storage.md | 7 ++++++-
packages/core/src/__tests__/workflow-ir-foreach.test.ts | 2 +-
packages/engine/src/workflow-authoritative-driver.ts | 2 +-
3 files changed, 8 insertions(+), 3 deletions(-)
Fusion-Task-Id: FN-6008
Fusion-Task-Lineage: d8c7c05c-f003-453d-bbd1-d9f0dda62f7c
2026-06-08 13:32:58 -07:00
gsxdsm
2fd214b4f2
FN-5975: extend archive FTS maintenance coverage
...
Add archive-database FTS maintenance and document the expanded compaction policy.
- add archive FTS maintenance helpers for optimize, rebuild, size measurement, and row counts
- extend self-healing maintenance to compact and rebuild archived_tasks_fts on a slower archive-specific cadence
- cover archive FTS maintenance with new core and engine tests and update architecture/storage docs
Files changed:
docs/architecture.md | 2 +-
docs/storage.md | 12 +-
.../__tests__/archive-db-fts-maintenance.test.ts | 221 +++++++++++++++++++++
packages/core/src/archive-db.ts | 61 +++++-
packages/core/src/db.ts | 21 +-
packages/core/src/store.ts | 20 ++
.../src/__tests__/fts-maintenance-archive.test.ts | 207 +++++++++++++++++++
packages/engine/src/self-healing.ts | 80 ++++++++
8 files changed, 608 insertions(+), 16 deletions(-)
Fusion-Task-Id: FN-5975
Fusion-Task-Lineage: 13645c8c-3126-4d1b-af23-7cab1a8bb276
2026-06-08 10:33:16 -07:00
gsxdsm
c0b6f212c9
fix(FN-5994): address verification review feedback
...
Harden command normalization edge cases and abort loop compaction on timeout before falling through to stuck-task requeue.
Fusion-Task-Id: FN-5994
2026-06-08 10:23:01 -07:00
gsxdsm
0c8674c37c
fix(FN-5994): prevent verification hangs
...
Normalize package file-filter verification to direct Vitest execution, kill timed-out process groups, and bound loop-recovery compaction so stuck tasks cannot spin indefinitely.
Fusion-Task-Id: FN-5994
2026-06-08 09:44:00 -07:00
gsxdsm
c9b780217b
Merge pull request #1508 from Runfusion/feature/workflow-loop-nodes
...
Add bounded workflow loop nodes
2026-06-08 00:33:25 -07:00
gsxdsm
75867c4002
fix(FN-0000): address workflow loop review feedback
2026-06-08 00:19:50 -07:00
gsxdsm
a504238d26
feat(FN-0000): add workflow loop nodes
2026-06-07 23:56:25 -07:00
gsxdsm
56b194383d
fix: address workflow PR feedback
2026-06-07 23:30:16 -07:00
gsxdsm
e138971030
fix: stabilize workflow board and loop recovery
2026-06-07 23:30:16 -07:00
gsxdsm
340b2efa39
Merge pull request #1467 from buihongduc132/upstream-pr/project-selector-enhancements
...
feat(dashboard): scrollable, autocomplete, bookmarkable project selector
2026-06-07 23:18:30 -07:00
gsxdsm
a27921a276
fix: address PR review feedback ( #1467 )
...
- guard optional project selection callbacks and keep bookmarked search matches visible
- use structured timeout/rate-limit handling in retry backoff
- add focused regressions for selector and retry behavior
Note: pnpm test passed the merge gate but hit pre-existing non-blocking engine mock failures in changed-package tests.
2026-06-07 23:03:38 -07:00
gsxdsm
de254858f2
Merge pull request #1498 from Runfusion/feature/engine-plugin
...
[codex] Add workflow extension plugin seams
2026-06-07 22:57:04 -07:00
gsxdsm
6d47d1abd0
fix(engine): tighten workflow extension feedback fixes
2026-06-07 22:21:48 -07:00
gsxdsm
01523a6581
fix(engine): address workflow extension PR feedback
2026-06-07 21:19:10 -07:00
gsxdsm
71822f26db
feat(engine): add workflow extension plugin seams
2026-06-07 20:43:44 -07:00
gsxdsm
d3a2c8863d
FN-5945: narrow hot task updates to changed columns
...
Reduce SQLite and FTS churn on hot task-update paths.
- switch hot task writes to column-scoped UPDATE statements that touch only changed fields plus updatedAt
- keep create and replication-style persistence on full-row INSERT/UPSERT paths and rewrite task.json from the refreshed DB row after partial updates
- route executor lease renewals through renewCheckoutLease and add regression coverage plus storage docs for the narrower write paths
Files changed:
docs/storage.md | 5 +-
.../core/src/__tests__/task-partial-update.test.ts | 191 ++++++
packages/core/src/store.ts | 638 +++++++++++----------
.../src/__tests__/executor-lease-renewal.test.ts | 66 +++
packages/engine/src/executor.ts | 2 +-
5 files changed, 603 insertions(+), 299 deletions(-)
Fusion-Task-Id: FN-5945
Fusion-Task-Lineage: ad0c5b64-f411-4379-85ab-f81edfc18101
2026-06-07 20:15:26 -07:00
gsxdsm
3615b0b19d
FN-5941: stop todo/in-progress flapping
...
Prevent scheduler and self-healing churn from bouncing live tasks between todo and in-progress.
- add dispatch oscillation settings, scheduler settle-window tracking, and auto-pause audit/logging for rapid todo↔in-progress cycles
- harden self-healing against reclaiming genuinely active tasks by checking executor activity, grace windows, and heartbeat runs before requeueing
- cover the new reliability invariants with focused engine tests and document the new diagnostics/settings behavior
Files changed:
docs/architecture.md | 1 +
docs/diagnostics.md | 9 +
docs/settings-reference.md | 3 +
.../core/src/__tests__/settings-parity.test.ts | 6 +
packages/core/src/settings-schema.ts | 6 +
packages/core/src/types.ts | 9 +
.../todo-inprogress-flapping.test.ts | 556 +++++++++++++++++++++
packages/engine/src/__tests__/scheduler.test.ts | 14 +-
.../self-healing-in-progress-limbo.test.ts | 2 +-
packages/engine/src/__tests__/self-healing.test.ts | 8 +-
packages/engine/src/run-audit.ts | 8 +
packages/engine/src/scheduler.ts | 113 ++++-
packages/engine/src/self-healing.ts | 230 +++++++--
13 files changed, 928 insertions(+), 37 deletions(-)
Fusion-Task-Id: FN-5941
Fusion-Task-Lineage: babdd85e-d04c-47ca-901c-db692b2874bf
2026-06-07 18:51:47 -07:00
gsxdsm
934f2f0d04
FN-6004: add execFile to engine child_process test mocks
...
Update engine tests so child_process mocks cover execFile alongside exec.
- add execFile mock implementations and promisify support in branch/worktree tests that rely on child_process behavior
- extend simpler child_process mocks in integration, sandbox, and worktree tests to export execFile stubs
- keep existing exec and execSync mock behavior unchanged while restoring compatibility with code that now imports execFile
Files changed:
packages/engine/src/__tests__/branch-autocorrect.test.ts | 9 ++++++++-
.../engine/src/__tests__/branch-conflicts-self-owned.test.ts | 9 ++++++++-
packages/engine/src/__tests__/branch-conflicts.test.ts | 9 ++++++++-
packages/engine/src/__tests__/integration-branch.test.ts | 1 +
.../engine/src/__tests__/sandbox/bubblewrap-detect.test.ts | 1 +
.../engine/src/__tests__/sandbox/sandbox-exec-backend.test.ts | 1 +
.../engine/src/__tests__/sandbox/sandbox-exec-detect.test.ts | 1 +
.../engine/src/__tests__/worktree-acquisition-backend.test.ts | 2 +-
.../src/__tests__/worktree-acquisition-worktrunk.test.ts | 2 +-
packages/engine/src/__tests__/worktree-backend.test.ts | 2 +-
.../engine/src/__tests__/worktree-hooks-cross-platform.test.ts | 2 +-
packages/engine/src/__tests__/worktree-pool.test.ts | 10 ++++++++--
packages/engine/src/__tests__/worktree-stale-lock.test.ts | 2 +-
.../engine/src/__tests__/worktree-stale-registration.test.ts | 2 +-
14 files changed, 42 insertions(+), 11 deletions(-)
Fusion-Task-Id: FN-6004
Fusion-Task-Lineage: f87fb103-fe5d-4fc9-a640-9991c06e6448
2026-06-07 18:51:47 -07:00
gsxdsm
fab8a62b55
FN-5977: expose goal retrieval tools across engine agents
...
Make goal lookup tools available and citable throughout engine-driven agent sessions.
- add shared engine goal list/show tools with concise list snippets, full detail lookup, and retrieval audit coverage
- expose fn_goal_list and fn_goal_show in executor, heartbeat, and triage tool surfaces and classify them as readonly coordination-exempt tools
- extend CLI and engine regression coverage, refresh tool reference docs, and add a published changeset for the CLI package
Files changed:
.changeset/FN-5977-goal-retrieval-engine-tools.md | 7 +
packages/cli/skill/fusion/references/engine-tools.md | 2 +
packages/cli/src/__tests__/extension-goal-tools-audit.test.ts | 8 +-
packages/cli/src/__tests__/extension-goal-tools.test.ts | 118 +++++++++++-
packages/cli/src/__tests__/goal-store-resolution.test.ts | 2 +-
packages/cli/src/extension.ts | 38 +++-
packages/engine/src/__tests__/agent-tools-goal.test.ts | 213 +++++++++++++++++++++
packages/engine/src/__tests__/gating-classifications.test.ts | 4 +
packages/engine/src/__tests__/heartbeat-executor.test.ts | 22 ++-
packages/engine/src/__tests__/heartbeat-session-prompt.test.ts | 8 +-
packages/engine/src/agent-heartbeat.ts | 4 +-
packages/engine/src/agent-tools.ts | 180 ++++++++++++++++-
packages/engine/src/executor.ts | 8 +
packages/engine/src/gating-classifications.ts | 2 +
packages/engine/src/triage.ts | 26 ++-
15 files changed, 600 insertions(+), 42 deletions(-)
Fusion-Task-Id: FN-5977
Fusion-Task-Lineage: 46f7e777-da4d-4e9c-b014-329a5cb1e3da
2026-06-07 18:51:46 -07:00
gsxdsm
61d687440b
FN-5770: promote workflow interpreter to guarded lifecycle driver
...
Route default coding tasks through the workflow interpreter only when parity readiness checks pass.
- add a core cutover-readiness evaluator and exports for the workflowInterpreterAuthoritative flag
- wire a WorkflowAuthoritativeDriver into runtime dispatch and reuse authoritative lifecycle seams with legacy fallback behavior
- cover the cutover with reliability tests, docs updates, and a published CLI changeset
Files changed:
.../FN-5770-workflow-interpreter-authoritative.md | 5 +
docs/architecture.md | 1 +
docs/settings-reference.md | 5 +-
docs/workflow-steps.md | 22 +-
.../core/src/__tests__/workflow-cutover.test.ts | 68 +++++
packages/core/src/index.ts | 8 +
packages/core/src/workflow-cutover.ts | 81 ++++++
.../src/__tests__/openclaw-runtime-e2e.test.ts | 1 +
.../engine/src/__tests__/pi-layers-wiring.test.ts | 2 +-
.../branch-recovery-live-zero-commits.test.ts | 2 +-
.../branch-recovery-stale-cached-base.test.ts | 2 +-
.../workflow-interpreter-cutover.test.ts | 306 +++++++++++++++++++++
.../self-healing-completion-fanout.test.ts | 2 +-
.../self-healing-ghost-branch-recovery.test.ts | 2 +-
.../self-healing-orphan-only-scope.test.ts | 2 +-
.../self-healing-reclaim-live-zero-commits.test.ts | 2 +-
.../self-healing-stale-merger-status.test.ts | 2 +-
.../src/__tests__/step-session-executor.test.ts | 2 +-
.../__tests__/worktree-admin-entry-prune.test.ts | 8 +-
packages/engine/src/executor.ts | 13 +-
packages/engine/src/index.ts | 6 +
packages/engine/src/runtimes/in-process-runtime.ts | 8 +
.../engine/src/workflow-authoritative-driver.ts | 154 +++++++++++
23 files changed, 686 insertions(+), 18 deletions(-)
Fusion-Task-Id: FN-5770
Fusion-Task-Lineage: dee668b5-10e0-4a3c-b025-9cc43a26286a
2026-06-07 18:51:46 -07:00
gsxdsm
23eb7e25c5
FN-5952: delete obsolete cwd-fallback-removed test
...
Remove obsolete cwd-fallback reliability coverage and keep the remaining worktree recovery test portable.
- delete the skipped reliability-interactions cwd fallback removal test that no longer covers a distinct path
- update executor worktree recovery to use os.tmpdir() and clean up its temporary root in finally
Files changed:
.../engine/src/__tests__/executor-worktree.test.ts | 57 ++++++++++++----------
.../cwd-integration-fallback-removed.test.ts | 56 ---------------------
2 files changed, 31 insertions(+), 82 deletions(-)
Fusion-Task-Id: FN-5952
Fusion-Task-Lineage: 8a621b9c-ec24-4400-93c7-e9d946e15283
2026-06-07 18:51:46 -07:00
gsxdsm
294209f64b
FN-5943: maintain tasks FTS5 indexes automatically
...
Keep the tasks FTS5 index compact and self-healing during routine maintenance.
- add FTS5 trigger helpers, index sizing utilities, and a schema migration that skips no-op searchable-field rewrites
- run merge/optimize/rebuild maintenance from self-healing with thresholds, cadence, and run-audit logging
- add focused FTS maintenance coverage and update storage/architecture docs for the new behavior
Files changed:
docs/architecture.md | 1 +
docs/storage.md | 14 ++
packages/core/src/__tests__/db-migrate.test.ts | 50 ++--
packages/core/src/__tests__/db.test.ts | 84 +++----
packages/core/src/__tests__/goals-schema.test.ts | 2 +-
packages/core/src/__tests__/insight-store.test.ts | 10 +-
.../src/__tests__/merge-request-record.test.ts | 2 +-
packages/core/src/__tests__/mission-store.test.ts | 2 +-
packages/core/src/__tests__/run-audit.test.ts | 2 +-
.../src/__tests__/store-archive-search.test.ts | 33 +++
.../core/src/__tests__/store-merge-queue.test.ts | 2 +-
packages/core/src/__tests__/task-documents.test.ts | 2 +-
packages/core/src/archive-db.ts | 6 +-
packages/core/src/db.ts | 162 ++++++++++---
packages/core/src/store.ts | 16 ++
.../engine/src/__tests__/fts-maintenance.test.ts | 268 +++++++++++++++++++++
packages/engine/src/self-healing.ts | 70 ++++++
.../src/store/__tests__/roadmap-store.test.ts | 4 +-
18 files changed, 622 insertions(+), 108 deletions(-)
Fusion-Task-Id: FN-5943
Fusion-Task-Lineage: 9a851ede-95ee-4b76-bc34-737912f0e3fc
2026-06-07 18:51:46 -07:00
gsxdsm
fb6b441fbe
FN-5960: add unlinked mission advisory reporting
...
Add explicit visibility for active missions that remain intentionally unlinked to goals.
- document the no-backfill decision with an engine-emitted unlinked mission advisory
- add a scheduler reporter that emits one deduped workflow insight for active missions without goal links and falls back to task logs when insight storage is unavailable
- cover the advisory reporter and scheduler integration with focused tests
- clear PR remediation errors when changing the Create Pull Request base branch
Files changed:
docs/missions.md | 2 +
.../dashboard/app/components/PrCreateModal.tsx | 2 +
packages/engine/src/__tests__/scheduler.test.ts | 8 +
.../unlinked-missions-advisory-reporter.test.ts | 170 +++++++++++++++++++++
packages/engine/src/scheduler.ts | 18 +++
.../src/unlinked-missions-advisory-reporter.ts | 117 ++++++++++++++
6 files changed, 317 insertions(+)
Fusion-Task-Id: FN-5960
Fusion-Task-Lineage: efdbb4f5-fbd5-4ed7-9b9e-58706041d993
2026-06-07 18:51:46 -07:00
gsxdsm
ce8402e37b
fix(FN-6021): align workflow runtime fallback run ids
2026-06-07 17:59:24 -07:00
gsxdsm
cbc2bbff7d
refactor(workflow): add workflow task runtime facade
2026-06-07 17:42:43 -07:00
Fusion Worker
1afdbbbb47
feat(engine): add structured error types and general-purpose retry with exponential backoff
...
Add domain-specific error classes (engine-errors.ts) replacing generic
catch blocks with typed, classifiable errors:
- EngineError base with code/retryable/details fields
- TransientError hierarchy: NetworkError, ServiceUnavailableError, TimeoutError
- PermanentError hierarchy: ConfigurationError, ValidationError
- RateLimitError (triggers global pause, not local retry)
- classifyThrownError() bridge from legacy string-based detection
Add general-purpose retry with exponential backoff (retry-with-backoff.ts):
- withRetry() wraps async ops with configurable retries for transient errors
- Exponential backoff: delay = min(baseMs * 2^attempt, maxMs)
- Three jitter strategies: full (default), equal, none
- Per-attempt timeout support via timeoutMs option
- AbortSignal integration for task pause/cancel/shutdown
- Custom isRetryable check for domain-specific retry logic
- withRetryResult() variant returning retry metadata
- Never retries rate-limit errors (delegates to global pause)
53 new tests covering error hierarchy, backoff math, cancellable sleep,
retry on transient errors, non-retryable fail-fast, rate-limit bypass,
abort cancellation, per-attempt timeout, custom predicates.
2026-06-07 00:15:48 +07:00
gsxdsm
854b6a30c9
fix(lint): empty-interface PrSourceDescriptor → type alias, drop unused eslint-disable directives
...
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-06 00:15:28 -07:00
gsxdsm
841ff9d838
Address PR review feedback ( #1461 )
...
- pr-nodes: forward post-increment entity to deps.respond (responseRounds off-by-one); branch-group entity fallback now keys on task.branchContext.groupId, not task.id
- core: hoist shared autoMergeGateReason into @fusion/core pr-entity.ts; CLI + dashboard import the single definition (R13)
- cli: fn pr create also writes the unified PR entity (ensure → open), keeping legacy prInfo; resolveBranchHeadOid uses argv-safe execFileAsync (injection fix)
- changeset: fn-pr-commands bumped minor → major (breaking CLI removal per AGENTS.md)
- tests: bin.test.ts daemon fixture off reserved port 4040; lazy-loaded-views title 19 → 20 views
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-06 00:09:53 -07:00
gsxdsm
1922b5efc2
merge: main (workflow editor 109 / cli_sessions 110-111 / workflow_settings 112) — renumber PR-entity migration to 113, union core exports, TaskCard prNode + cliSessionState badges, executor PrNodeDeps + CliAgentRuntime options
2026-06-05 23:06:46 -07:00
gsxdsm
f1e9ab5587
fix(review): apply autofix feedback
...
Security hardening + cleanups from code review: parseAgentVerdicts now
ignores out-of-batch thread ids and fails safe (disagree) on conflicting
duplicate verdicts for one thread; drop the unused store param from
makePrResponseAgentRunner; correct the rework-bound doc (to-node, not
from-node) and the migration idempotency comment (PK is the re-run guard).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-05 22:49:39 -07:00
gsxdsm
3f313567dd
feat(pr): built-in PR workflow template, end-to-end (U9)
...
Ships BUILTIN_PR_WORKFLOW_IR (builtin:pr-workflow) wiring the lifecycle
end to end: start -> pr-create -> await-review hold -> (changes-requested)
pr-respond -[rework]-> await-review -> (approved) auto-merge gate ->
pr-merge -> end, with conflict/failed holds and manual force-merge/close
edges. Completes U6's validator side: validateV2 permits a top-level
kind:rework edge whose loop-head opts in via config.reworkRegion (non-
rework cycles still rejected). Additive (default builtin:coding untouched);
behind workflowGraphExecutor. Legacy PrCommentHandler/PrMonitor retirement
deferred (they remain the flag-off path's PR handling) — recorded in the
plan. Fast e2e test; 41 core IR/builtin tests green.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-05 22:42:36 -07:00
gsxdsm
96f801c019
feat(pr): top-level bounded rework + auto-merge gate + legacy-bypass pin (U6)
...
Generalizes the foreach-only bounded-rework mechanism to the top-level
graph walk so the PR review loop (await-review -> pr-respond -> rework
back) is a legal bounded cycle: a kind:rework back-edge to a stacked node
returns a ReworkSignal the loop-head re-runs up to maxReworkCycles, then
routes outcome:rework-exhausted. Non-rework cycles still throw 'Cycle
detected' (safety preserved); foreach rework unchanged (shared core
constants). Adds createAutoMergeGateHandler (live entity re-fetch +
isPrEntityAutoMergeReady -> auto-on/auto-off). Pins R14: graph-executed
PR tasks merge through pr-merge, never the legacy queue. 122 graph tests
green.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-05 20:32:24 -07:00
gsxdsm
31d4b5335b
feat(pr): security-hardened review-response run — pr-respond body (U5)
...
Implements the fix-or-disagree agent loop behind pr-respond: batched
one-run-per-cycle over actionable threads (filtering resolved/outdated/
self/bot), with prompt-injection delimiting of untrusted comment bodies,
viewer-authenticated anti-spoof markers, a pre-push secret scan, fast-
forward-only push (no force-push path) with non-ff abort+re-batch, reply+
resolve, commit-last thread-state persistence with marker+SHA crash
recovery (R15), and an iteration cap on responseRounds (R8). GitHub/git/
agent ops injected; engine stays dashboard-import-free. Adds GraphQL
getPrReviewThreadsDetailed + getViewerLogin to the client. 23 tests.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-05 20:20:25 -07:00
gsxdsm
c13f9a123b
feat(pr): node-agnostic PR reconcile + hold-release firing (U4)
...
Adds PrReconciler — a per-repo, self-owned polling loop (started from the
runtime layer in project-engine.ts, NOT the scheduler) that ETag-probes
GitHub, deep-fetches on change, persists mirror state, clears unverified
on first reconcile, and fires releaseHeldTaskByEvent(github:pr-<event>)
for transitions (changes-requested/approved/conflict/conflict-cleared/
merged/closed). Drops terminal entities; persists an audit event on error.
GitHub ops injected via PrReconcileGithubOps at the 3 CLI sites; engine
never imports the dashboard client. scheduler.ts stays PR-free (R20),
pinned by a regression test. 8 tests.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-05 20:05:29 -07:00
gsxdsm
4e16145aab
feat(pr): pr-create/pr-respond/pr-merge node kinds + handlers (U3)
...
Adds the three first-class PR workflow node kinds and their handlers via
createPrNodeHandlers(deps), registered in createDefaultNodeHandlers
(fail-closed pr-nodes-unwired when absent). GitHub ops are injected as
callbacks (PrNodeGithubOps) at all three CLI sites (daemon/serve/dashboard)
so the engine never imports the dashboard client (FN-3049). pr-create
routes open/failed as outcomes; pr-merge passes expectedHeadOid and never
writes 'merged' (reconcile corroborates); pr-respond delegates to an
injected respond callback (U5 fills the body). 10 tests.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-05 19:55:31 -07:00
gsxdsm
1f68348441
merge: main (CLI agent interface #1446 ) — renumber workflow_settings migration to 112 behind main's cli_sessions(110)/adapter(111), full-workspace literal sweep, i18n union
2026-06-05 16:18:39 -07:00
gsxdsm
693ed6290a
Merge remote-tracking branch 'origin/main' into gsxdsm/cli-agent-interface
...
# Conflicts:
# CONCEPTS.md
# packages/core/src/__tests__/db-migrate.test.ts
# packages/core/src/__tests__/db.test.ts
# packages/core/src/__tests__/goals-schema.test.ts
# packages/core/src/__tests__/insight-store.test.ts
# packages/core/src/__tests__/merge-request-record.test.ts
# packages/core/src/__tests__/mission-store.test.ts
# packages/core/src/__tests__/run-audit.test.ts
# packages/core/src/__tests__/store-merge-queue.test.ts
# packages/core/src/__tests__/task-documents.test.ts
# packages/core/src/db.ts
# packages/dashboard/src/__tests__/agent-onboarding.test.ts
# packages/dashboard/src/__tests__/ai-refine.test.ts
# packages/dashboard/src/__tests__/chat-attachment-routes.test.ts
# packages/dashboard/src/__tests__/experiment-routes.finalize.test.ts
# packages/dashboard/src/__tests__/milestone-slice-interview.test.ts
# packages/dashboard/src/__tests__/mission-interview.test.ts
# packages/dashboard/src/__tests__/pr-metadata-generator.test.ts
# packages/dashboard/src/__tests__/project-pause-resume-routes.test.ts
# packages/dashboard/src/__tests__/routes-approval-sandbox-provisioning.test.ts
# packages/dashboard/src/__tests__/routes-approval-secrets.test.ts
# packages/dashboard/src/__tests__/routes-approval.test.ts
# packages/dashboard/src/__tests__/routes-worktrunk.test.ts
# packages/dashboard/src/__tests__/session-error-recovery.test.ts
# packages/dashboard/src/__tests__/session-persistence-roundtrip.test.ts
# packages/dashboard/src/__tests__/session-reconnect.test.ts
# packages/dashboard/src/__tests__/session-resume-history.test.ts
# packages/dashboard/src/__tests__/setup-routes.test.ts
# packages/dashboard/src/__tests__/subtask-breakdown.test.ts
# packages/dashboard/src/routes/__tests__/agent-avatar-routes.test.ts
# packages/dashboard/src/routes/__tests__/custom-providers.test.ts
# packages/dashboard/src/routes/__tests__/docker-node-routes.test.ts
# packages/i18n/locales/en/app.json
# plugins/fusion-plugin-roadmap/src/store/__tests__/roadmap-store.test.ts
2026-06-05 15:30:59 -07:00
gsxdsm
6d16c07197
merge: main (editor consolidation #1433 , fast-tests, learnings) — renumber workflow_settings migration to 110, settings panel joins the sidebar disclosures, full-workspace literal sweep
2026-06-05 15:23:15 -07:00
gsxdsm
7d69691bbf
Merge pull request #1433 from Runfusion/gsxdsm/improve-node-editor
...
feat: workflow editor upgrade and consolidation — primary surface, templates, import/export, AI design
2026-06-05 15:06:32 -07:00
gsxdsm
47e4919a78
Merge pull request #1453 from Runfusion/gsxdsm/fast-tests
...
refactor(ci): thin trusted merge gate with flaky-test deletion ratchet
2026-06-05 14:52:12 -07:00
gsxdsm
11fb9f1325
merge main: per-column agent assignment (binding validation, policy-escalation handshake, override notes) into workflow editor consolidation
...
Resolved 4 conflicts preserving both feature sets:
- WorkflowNodeEditor.tsx: kept card-node/edge/dialog/dirty-guard/auto-layout/
onboarding/template/AI-edit features; wired main's columnAgentsEnabled flag
gate, override-column agent registry load, and policy-escalation save retry
(finishSave helper wraps both update payloads).
- WorkflowNodeEditor.test.tsx: kept U2/U4/AI-design describes plus main's U6
column-agent describe; merged api mock + import lists.
- register-workflow-routes.ts: merged import sets (design DI seam + column-agent
validators).
- agent-tools.ts: strip-approval-flags and column-agent binding assertion now
both run in create/update tools.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-05 14:43:02 -07:00
gsxdsm
b7fa21c25e
merge: main (column-agent assignment #1432 ) into workflow-settings — union executor/agent-tools/routes imports, both tool-description texts, both route helpers
2026-06-05 14:41:43 -07:00
gsxdsm
60f1b7fa39
Merge remote-tracking branch 'origin/main' into gsxdsm/cli-agent-interface
...
# Conflicts:
# packages/dashboard/app/components/__tests__/ListView.test.tsx
2026-06-05 14:36:42 -07:00
gsxdsm
b8eea85dc9
Merge pull request #1432 from Runfusion/feat/column-agent-assignment
...
feat: per-column agent assignment for workflow columns
2026-06-05 14:19:53 -07:00
gsxdsm
59364e7c58
Address PR review feedback round 2 ( #1432 )
...
- R10 kill-switch: workflowColumns flag now gates the execution path (resolver
installation + resume pass 2), making the documented rollback real
- resolver: skip parse candidates whose templateNodeId doesn't exist under the
foreach (disambiguation guard)
- editor: reset the project-scoped agents cache on projectId change
- tests: kill-switch inertness, defer→own-settings release, candidate skip
2026-06-05 13:59:50 -07:00
gsxdsm
482fc25add
Merge main into fast-tests: keep both CONCEPTS additions (workflow columns/plugins + merge-gate testing vocabulary)
2026-06-05 09:37:22 -07:00
gsxdsm
2a0223472e
Address PR review feedback ( #1432 )
...
- delimiter-safe foreach instance-id resolution via IR-validated candidates
- restart watcher handles binding removal/defer-flip and re-keys the reverse
heartbeat guard on agent change/delete
- governing-node stamp owned by the pass-initiating foreach instance (race fix)
- editor: policy-escalation confirm/retry handshake on save; foreach children
inherit the override note; project-scoped agent fetches; picker disabled on
registry fetch error; column-agent strings in the canonical i18n catalog
- tests: update-tool escalation surface, PATCH escalation route, parity bound
to run-derived stages, try/finally cleanup, deterministic event waits,
symmetric defer surfaces, binding-release regression
2026-06-05 09:29:04 -07:00
gsxdsm
98d5d83e95
feat(test): add curated engine-core gate suite and test:gate command
2026-06-05 08:55:43 -07:00