commit 02d2738e43debc170b76b307ca27674ca1a56b78
Author: Coder Agent <coder@agents.omni>
Date: Wed Feb 11 22:10:26 2026
Omni/Ide: handle non-buildable namespace verification gracefully
- treat known non-buildable bild errors as verification skip
- keep hard-fail behavior for real build/test failures
- document non-buildable namespace handling in workflow docs
- update integrator guidance for known container parse-only bild error
Task-Id: t-589
diff --git a/Omni/Ide/DEV_REVIEW_RELEASE.md b/Omni/Ide/DEV_REVIEW_RELEASE.md
index 65652547..0f5f8dfa 100644
--- a/Omni/Ide/DEV_REVIEW_RELEASE.md
+++ b/Omni/Ide/DEV_REVIEW_RELEASE.md
@@ -89,6 +89,9 @@ Cost accounting is recorded per run in task comments:
- Each run appends `cost_cents=...` and cumulative cost metadata.
- `--max-task-cost` prevents additional automated runs once the task exceeds the limit.
+Namespace verification notes:
+- Dev build gating treats `bild` "nothing to build" / known parse-only namespace errors as non-buildable and skips verification instead of blocking progress.
+
Expected lifecycle:
`open -> in-progress -> review -> approved -> done`
diff --git a/Omni/Ide/Workflows/integrator.md b/Omni/Ide/Workflows/integrator.md
index 74f365f6..8f62329e 100644
--- a/Omni/Ide/Workflows/integrator.md
+++ b/Omni/Ide/Workflows/integrator.md
@@ -71,7 +71,11 @@ Run namespace-specific checks:
- `bild <namespace>`
- `bild --test <namespace>` where available
-If verification fails:
+If `bild` reports a non-buildable namespace condition (for example `nothing to build`
+or the known container parse error `parsing Int failed, expected Number, but encountered String`),
+record verification as skipped/N/A instead of blocking integration.
+
+If verification fails for other reasons:
- Revert local cherry-pick commit only if unpushed in this run
- Add task comment with failure details
- Set task back to `open`
diff --git a/Omni/Ide/dev-review-release.sh b/Omni/Ide/dev-review-release.sh
index 85e6b4be..7e107e30 100755
--- a/Omni/Ide/dev-review-release.sh
+++ b/Omni/Ide/dev-review-release.sh
@@ -300,6 +300,11 @@ run_cost_cents() {
agentd status "$run_name" --json 2>/dev/null | jq -r '.cost_cents // 0' 2>/dev/null || echo "0"
}
+is_non_buildable_namespace_error() {
+ local output="$1"
+ grep -Eq "nothing to build|parsing Int failed, expected Number, but encountered String" <<<"$output"
+}
+
cost_limit_comment_exists() {
local tid="$1"
local max_task_cost="$2"
@@ -733,15 +738,20 @@ run_single_task() {
if build_output=$(cd "$workspace" && bild "$task_namespace" 2>&1); then
log "Build verification passed for $task_namespace"
else
- build_passed="false"
- log "Build verification FAILED for $task_namespace"
- task comment "$tid" "Automation (dev) build verification failed for $task_namespace. Output:
+ if is_non_buildable_namespace_error "$build_output"; then
+ log "Namespace $task_namespace is non-buildable in this environment; skipping build verification"
+ task comment "$tid" "Automation (dev) skipped build verification for non-buildable namespace $task_namespace (bild reported no build target)." --json >/dev/null || true
+ else
+ build_passed="false"
+ log "Build verification FAILED for $task_namespace"
+ task comment "$tid" "Automation (dev) build verification failed for $task_namespace. Output:
\`\`\`
$build_output
\`\`\`
Status left at $new_status for retry." --json >/dev/null || true
+ fi
fi
else
log "No namespace set for $tid, skipping build verification"