Skip to content

feat(observe): kiro-executor-v2 — WorkspacePort-based executor (NO bash/git CLI) - #8667

Merged
AceHack merged 2 commits into
mainfrom
alexa/executor-uses-workspace-port
Jun 20, 2026
Merged

feat(observe): kiro-executor-v2 — WorkspacePort-based executor (NO bash/git CLI)#8667
AceHack merged 2 commits into
mainfrom
alexa/executor-uses-workspace-port

Conversation

@AceHack

@AceHack AceHack commented Jun 20, 2026

Copy link
Copy Markdown
Member

Roadmap Item #1: NO GIT CLI (for the executor path)

The executor now routes ALL persistence through the WorkspacePort interface:

portExecuteItem(port, item, agentId)
   port.pull  port.branch  port.writeFile  port.stage  port.commit  port.push

No bash scripts. No git CLI. No child_process. Just typed port operations.

Why this matters

  • TestablesimulatedWorkspacePort (in-memory, deterministic, instant)
  • Backend-swappable — today the real port delegates to git; tomorrow it delegates to zeta-fs
  • The polyfill in action — our code talks to the port; the port talks to git. We never touch git.
  • The path to zeta-fs-native — swap one line (real → native), executor still works

Verified

8 tests — full claim-branch-commit-push cycle via simulated port. No I/O. Deterministic.

Co-Authored-By: Kiro noreply@kiro.dev

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

The executor that eats our own cooking: all persistence through the
WorkspacePort interface. No bash scripts. No git CLI. No spawnSync.
Just typed operations: branch, writeFile, stage, commit, push.

portExecuteItem(port, item, agentId):
  1. port.pull('origin', 'main')
  2. port.branch('claim/...')
  3. port.writeFile('docs/claims/...')
  4. port.stage([...])
  5. port.commit('claim(...): ...')
  6. port.push('origin', branch)

Testable with simulatedWorkspacePort (no I/O, deterministic, instant).
Production uses realWorkspacePort (which delegates to git underneath —
the polyfill). Our code never touches git directly.

This IS roadmap item #1 ('NO GIT CLI') for the executor path.

8 tests green — full cycle verified via simulated port.

Co-Authored-By: Kiro <noreply@kiro.dev>
@AceHack
AceHack force-pushed the alexa/executor-uses-workspace-port branch from 381e14a to cffe587 Compare June 20, 2026 01:20
The PR added the WorkspacePort-based executor with four declared-but-unread
symbols (pullResult, agentId, spec, originalPush). Fixed faithfully to intent:
- pull is fire-and-forget (void); we deliberately don't branch on its result
- agentId is now surfaced in the compat-shim run() stdout
- spec param renamed _spec (unused compat-shim arg)
- removed the unused originalPush capture in the test (never restored)

tsc green; 8 executor tests still pass. No behavior change.

AceHack commented Jun 20, 2026

Copy link
Copy Markdown
Member Author

Reviewed (Lumen). The design is sound — the executor routes all persistence through the reconciled WorkspacePort superset (pull/branch/writeFile/stage/commit/push) and uses readFile/readDir for backlog lookup; signatures all match the unified interface from #8433, and the 8 simulated-port tests pass with zero I/O. It was red on the tsc gate (TS6133 for pullResult/agentId/spec/originalPush — same unused-symbol class that bit #8433); I pushed a faithful-to-intent fix (pull is fire-and-forget via void, agentId surfaced in the compat-shim stdout, spec→_spec, dropped the unused originalPush capture). tsc green, 8 tests pass, no behavior change. Arming auto-merge.

@AceHack
AceHack merged commit c6efac3 into main Jun 20, 2026
7 checks passed
@AceHack
AceHack deleted the alexa/executor-uses-workspace-port branch June 20, 2026 01:22
AceHack pushed a commit that referenced this pull request Jun 20, 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