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: ef10b1d40c0fa2bbe190c2adc7a56c5d creationTimestamp: "2026-07-12T08:57:50Z" generation: 8 labels: branch: main build: "104" context: release created-by-lighthouse: "true" event-GUID: bf0fb4fa-7dcf-11f1-8a20-4b2363a1d37b lighthouse.jenkins-x.io/baseSHA: d78121f5279607d361de1c43f0e9f47e051cdc9a lighthouse.jenkins-x.io/branch: main lighthouse.jenkins-x.io/buildNum: "1783846667329" lighthouse.jenkins-x.io/context: release lighthouse.jenkins-x.io/id: capitaltrade-jarvis-main-release-p8t5d lighthouse.jenkins-x.io/job: release lighthouse.jenkins-x.io/lastCommitSHA: d78121f5279607d361de1c43f0e9f47e051cdc9a 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-vnrp8-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.22 operation: Update time: "2026-07-12T09:16:18Z" - 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-12T09:17:56Z" name: greencapitaltrade-jarvis-main-104 namespace: jx resourceVersion: "181820294" uid: 2d432745-944a-4f7d-b803-2bc7687849d4 spec: baseSHA: d78121f5279607d361de1c43f0e9f47e051cdc9a batchPipelineActivity: {} build: "104" buildLogsUrl: s3://logs-gct-prod-20260425045301534100000007/jenkins-x/logs/greencapitaltrade/jarvis/main/104.log completedTimestamp: "2026-07-12T09:17:49Z" context: release gitBranch: main gitOwner: greencapitaltrade gitRepository: jarvis gitUrl: https://github.com/greencapitaltrade/jarvis.git lastCommitMessage: | fix(breakdown): tempfail on provider quota exhaustion; claude fallback chain Root cause (jarvis#222): kimi_p exited non-zero with empty output (Kimi 403 quota exhaustion) but stage-breakdown.sh fell through to the parsefail branch, posted a `` comment, and burned an attempt from MAX_BREAKDOWN_ATTEMPTS=2. After 2 such failures the issue was parked to jarvis:awaiting-human — even though the model never ran. Three changes: 1. **Provider-failure = tempfail, not parsefail**: chain loop now distinguishes (a) provider failure — rc!=0 AND empty/whitespace output — from (b) format failure — non-empty output without ===TASK===. Only (b) consumes an attempt and posts a parsefail comment. (a) exits non-zero so the supervisor retries with backoff; no comment is posted, no attempt consumed. 2. **Claude fallback chain for breakdown**: config.env MODEL_BREAKDOWN changed from bare `kimi-code-2.7` to `kimi:kimi-code-2.7|claude:claude-opus-4-8`. stage-breakdown.sh now iterates the chain (kimi_p for kimi:* specs, llm_generate for claude:* specs). Both providers emit plain text via kimi_extract_stream_json / claude_p respectively — the ===TASK=== parser sees normalized text in both cases, no parser changes needed. Unblocks jarvis#222 immediately (Kimi quota resets 2026-07-16; claude fallback takes over before then). 3. **Counter reset on re-approval**: `breakdown_parsefail_count()` queries the issue timeline for the most recent `jarvis:approved` label event and counts only parsefail comments posted AFTER that timestamp. A maintainer adding jarvis:approved again after inspecting the PRD now gets a clean slate instead of hitting the exhausted counter. Closes #235 Co-Authored-By: Claude Fable 5 lastCommitSHA: 4905e5c60cf9c1dbc6a1b883188c0bba3a2dc79b message: 'Tasks Completed: 1 (Failed: 0, Cancelled 0), Skipped: 0' pipeline: greencapitaltrade/jarvis/main releaseNotesURL: https://github.com/greencapitaltrade/jarvis/releases/tag/v0.15.9 startedTimestamp: "2026-07-12T08:57:50Z" status: Succeeded steps: - kind: Stage stage: completedTimestamp: "2026-07-12T09:17:49Z" name: from build pack startedTimestamp: "2026-07-12T09:09:28Z" status: Succeeded steps: - completedTimestamp: "2026-07-12T09:09:29Z" name: Git Clone startedTimestamp: "2026-07-12T09:09:28Z" status: Succeeded - completedTimestamp: "2026-07-12T09:09:32Z" name: Next Version startedTimestamp: "2026-07-12T09:09:30Z" status: Succeeded - completedTimestamp: "2026-07-12T09:09:35Z" name: Jx Variables startedTimestamp: "2026-07-12T09:09:32Z" status: Succeeded - completedTimestamp: "2026-07-12T09:12:02Z" name: Build Test startedTimestamp: "2026-07-12T09:09:35Z" status: Succeeded - completedTimestamp: "2026-07-12T09:12:03Z" name: Check Registry startedTimestamp: "2026-07-12T09:12:03Z" status: Succeeded - completedTimestamp: "2026-07-12T09:15:55Z" name: Build Container Build startedTimestamp: "2026-07-12T09:12:04Z" status: Succeeded - completedTimestamp: "2026-07-12T09:16:18Z" name: Promote Changelog startedTimestamp: "2026-07-12T09:15:56Z" status: Succeeded - completedTimestamp: "2026-07-12T09:16:33Z" name: Promote Helm Release startedTimestamp: "2026-07-12T09:16:18Z" status: Succeeded - completedTimestamp: "2026-07-12T09:17:12Z" name: Promote Jx Promote startedTimestamp: "2026-07-12T09:16:33Z" status: Succeeded - completedTimestamp: "2026-07-12T09:17:49Z" name: Publish Org Kb startedTimestamp: "2026-07-12T09:17:13Z" status: Succeeded - kind: Promote promote: environment: production pullRequest: pullRequestURL: https://github.com/greencapitaltrade/mcu/pull/4743 startedTimestamp: "2026-07-12T09:17:09Z" status: Succeeded startedTimestamp: "2026-07-12T09:17:09Z" status: Succeeded version: 0.15.9 status: {}