apiVersion: jenkins.io/v1 kind: PipelineActivity metadata: annotations: lighthouse.jenkins-x.io/cloneURI: https://github.com/greencapitaltrade/jarvis.git lighthouse.jenkins-x.io/job: release pipeline.jenkins-x.io/traceID: 721bfcbe0018d9c877f73042ff0983e6 creationTimestamp: "2026-07-29T15:49:40Z" generation: 8 labels: branch: main build: "125" context: release created-by-lighthouse: "true" event-GUID: 19a69e4a-8b65-11f1-95bb-e41c64bf8bd5 lighthouse.jenkins-x.io/baseSHA: 72017a77b2f3c336bb3638bf81dc7c8b4c38338f lighthouse.jenkins-x.io/branch: main lighthouse.jenkins-x.io/buildNum: "1785340180130" lighthouse.jenkins-x.io/context: release lighthouse.jenkins-x.io/id: capitaltrade-jarvis-main-release-5dff6 lighthouse.jenkins-x.io/job: release lighthouse.jenkins-x.io/lastCommitSHA: 72017a77b2f3c336bb3638bf81dc7c8b4c38338f lighthouse.jenkins-x.io/refs.org: greencapitaltrade lighthouse.jenkins-x.io/refs.repo: jarvis lighthouse.jenkins-x.io/type: postsubmit owner: greencapitaltrade podName: capitaltrade-jarvis-main-release-tfskt-from-build-pack-pod provider: github repository: jarvis tekton.dev/pipeline: capitaltrade-jarvis-main-release managedFields: - apiVersion: jenkins.io/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:labels: f:branch: {} f:context: {} f:owner: {} f:provider: {} f:repository: {} f:spec: f:lastCommitMessage: {} f:lastCommitSHA: {} f:releaseNotesURL: {} f:version: {} manager: jx-changelog-0.10.29 operation: Update time: "2026-07-29T16:03:36Z" - apiVersion: jenkins.io/v1 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: .: {} f:lighthouse.jenkins-x.io/cloneURI: {} f:lighthouse.jenkins-x.io/job: {} f:pipeline.jenkins-x.io/traceID: {} f:labels: .: {} f:build: {} f:created-by-lighthouse: {} f:event-GUID: {} f:lighthouse.jenkins-x.io/baseSHA: {} f:lighthouse.jenkins-x.io/branch: {} f:lighthouse.jenkins-x.io/buildNum: {} f:lighthouse.jenkins-x.io/context: {} f:lighthouse.jenkins-x.io/id: {} f:lighthouse.jenkins-x.io/job: {} f:lighthouse.jenkins-x.io/lastCommitSHA: {} f:lighthouse.jenkins-x.io/refs.org: {} f:lighthouse.jenkins-x.io/refs.repo: {} f:lighthouse.jenkins-x.io/type: {} f:podName: {} f:tekton.dev/pipeline: {} f:spec: .: {} f:baseSHA: {} f:batchPipelineActivity: {} f:build: {} f:buildLogsUrl: {} f:completedTimestamp: {} f:context: {} f:gitBranch: {} f:gitOwner: {} f:gitRepository: {} f:gitUrl: {} f:message: {} f:pipeline: {} f:startedTimestamp: {} f:status: {} f:steps: {} manager: jx-build-controller operation: Update time: "2026-07-29T16:04:49Z" name: greencapitaltrade-jarvis-main-125 namespace: jx resourceVersion: "226714901" uid: fcd479b5-7bbb-4c80-bf49-50053e739cee spec: baseSHA: 72017a77b2f3c336bb3638bf81dc7c8b4c38338f batchPipelineActivity: {} build: "125" buildLogsUrl: s3://logs-gct-prod-20260425045301534100000007/jenkins-x/logs/greencapitaltrade/jarvis/main/125.log completedTimestamp: "2026-07-29T16:04:43Z" context: release gitBranch: main gitOwner: greencapitaltrade gitRepository: jarvis gitUrl: https://github.com/greencapitaltrade/jarvis.git lastCommitMessage: | fix: reconcile the live fallback-hotfix ConfigMap back into git Production has been running code from a hand-applied ConfigMap (jarvis-fallback-hotfix, created 2026-07-15) mounted over 14 files via subPath, not from the image. Any PR touching those files was inert in prod. This brings the live code into git so the image is authoritative again. Method: three-way merge, not a copy. Base = 90610b9 (main at ConfigMap creation), ours = live ConfigMap, theirs = current main. Only three shadowed files had moved in git since the base, so: 11 files taken from live verbatim (git had not touched them; live is strictly ahead) 3 files three-way merged — bin/stage-fix.sh and prompts/breakdown-review.md merged clean; config.env had one conflict, resolved by keeping BOTH sides. config.env conflict: live added a kimi fallback to MODEL_TRIAGE (weekly Claude rate limit, Ironman#1428, mitigated by a tool-forbidding prompt + output validator); main moved opus-4-8 -> opus-5. Both are wanted, so the result carries both: MODEL_TRIAGE="claude:claude-sonnet-4-6|claude:claude-opus-5|kimi:kimi-code-2.7" The live code did NOT pass this repo's test suite as-is (8 failures). Two real defects, fixed here rather than imported: 1. bin/stage-engineer.sh had LOST the jarvis#253/flash#309 watchdog entirely — no timeout block, no ENGINEER_TIMEOUT_SECONDS reference. The engineer ran unbounded, so the supervisor's outer STAGE_TIMEOUT_SECONDS SIGKILLs the whole process group before the push/PR-create logic runs, stranding commits the agent already made. That is precisely the failure those fixes removed, and it also means restoring ENGINEER_TIMEOUT_SECONDS to the ConfigMap earlier had no effect — nothing read it. Restored by wrapping live's run_agentic_chain call in the watchdog. cli_rc now travels via a temp file because backgrounding the pipeline makes PIPESTATUS unavailable after `wait`, and cli_rc is load-bearing for the tempfail-vs-real-failure classification below it. 2. tests/breakdown_claude_turns.bats pinned BREAKDOWN_MAX_TURNS==30. Production deliberately raised it to 80. The test's own comment says the invariant is "above the crippled 8", so the literal was over-specified — it made a deliberate increase look like a regression. Relaxed to assert >= 30. Full suite green: 148 passed, 0 failed. The 14 subPath mounts are NOT in the chart — they were hand-patched onto the Deployment and survive `kubectl apply`, so they must be removed explicitly once this ships. The ConfigMap object should be kept until then as the rollback path. Context and inventory: docs/live-config-drift.md (#279). lastCommitSHA: 9028112eb483fd71be50ba59f5641e3162fe01db message: 'Tasks Completed: 1 (Failed: 0, Cancelled 0), Skipped: 0' pipeline: greencapitaltrade/jarvis/main releaseNotesURL: https://github.com/greencapitaltrade/jarvis/releases/tag/v0.15.30 startedTimestamp: "2026-07-29T15:49:40Z" status: Succeeded steps: - kind: Stage stage: completedTimestamp: "2026-07-29T16:04:43Z" name: from build pack startedTimestamp: "2026-07-29T15:54:24Z" status: Succeeded steps: - completedTimestamp: "2026-07-29T15:54:26Z" name: Git Clone startedTimestamp: "2026-07-29T15:54:24Z" status: Succeeded - completedTimestamp: "2026-07-29T15:54:27Z" name: Next Version startedTimestamp: "2026-07-29T15:54:26Z" status: Succeeded - completedTimestamp: "2026-07-29T15:54:31Z" name: Jx Variables startedTimestamp: "2026-07-29T15:54:28Z" status: Succeeded - completedTimestamp: "2026-07-29T15:57:22Z" name: Build Test startedTimestamp: "2026-07-29T15:54:31Z" status: Succeeded - completedTimestamp: "2026-07-29T15:57:23Z" name: Check Registry startedTimestamp: "2026-07-29T15:57:23Z" status: Succeeded - completedTimestamp: "2026-07-29T16:03:28Z" name: Build Container Build startedTimestamp: "2026-07-29T15:57:23Z" status: Succeeded - completedTimestamp: "2026-07-29T16:03:36Z" name: Promote Changelog startedTimestamp: "2026-07-29T16:03:29Z" status: Succeeded - completedTimestamp: "2026-07-29T16:03:39Z" name: Promote Helm Release startedTimestamp: "2026-07-29T16:03:36Z" status: Succeeded - completedTimestamp: "2026-07-29T16:04:17Z" name: Promote Jx Promote startedTimestamp: "2026-07-29T16:03:39Z" status: Succeeded - completedTimestamp: "2026-07-29T16:04:43Z" name: Publish Org Kb startedTimestamp: "2026-07-29T16:04:17Z" status: Succeeded - kind: Promote promote: environment: production pullRequest: pullRequestURL: https://github.com/greencapitaltrade/mcu/pull/5002 startedTimestamp: "2026-07-29T16:04:14Z" status: Succeeded startedTimestamp: "2026-07-29T16:04:14Z" status: Succeeded version: 0.15.30 status: {}