Feat v0.7.12 batch exec (#66)
All checks were successful
CI/CD / detect-changes (push) Successful in 4s
CI/CD / test-runners (push) Has been skipped
CI/CD / e2e-smoke (push) Has been skipped
CI/CD / test-go-pg (push) Successful in 2m46s
CI/CD / test-sqlite (push) Successful in 2m58s
CI/CD / build-and-deploy (push) Successful in 1m27s
CI/CD / test-frontend (push) Successful in 5s

Co-authored-by: Jeffrey Smith <jasafpro@gmail.com>
Co-committed-by: Jeffrey Smith <jasafpro@gmail.com>
This commit was merged in pull request #66.
This commit is contained in:
2026-04-02 23:57:46 +00:00
committed by xcaliber
parent c2d52f50c5
commit 3b74774077
8 changed files with 1001 additions and 5 deletions

View File

@@ -338,6 +338,7 @@ func (r *Runner) buildModulesWithLibCtx(ctx context.Context, packageID string, m
// Track db permission level: 0=none, 1=read, 2=write
dbLevel := 0
hasBatchExec := false
for _, perm := range granted {
switch perm {
@@ -374,6 +375,9 @@ func (r *Runner) buildModulesWithLibCtx(ctx context.Context, packageID string, m
if r.bus != nil {
modules["realtime"] = BuildRealtimeModule(ctx, r.bus, packageID)
}
case models.ExtPermBatchExec:
hasBatchExec = true
}
}
@@ -404,5 +408,12 @@ func (r *Runner) buildModulesWithLibCtx(ctx context.Context, packageID string, m
modules["lib"] = BuildLibModule(ctx, r, packageID, rc, lc)
}
// Concurrent execution primitive — wired after all other modules
// so the runner reference can construct per-branch module sets if
// needed in future (Option B).
if hasBatchExec {
modules["batch"] = BuildBatchModule(ctx, r, packageID, manifest, rc, lc)
}
return modules, nil
}