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: c612b407b4bf58aefc98feba21e4665a creationTimestamp: "2026-07-03T15:37:32Z" generation: 7 labels: branch: main build: "78" context: release created-by-lighthouse: "true" event-GUID: 198d8650-76f5-11f1-965d-29f06b46d45f lighthouse.jenkins-x.io/baseSHA: c35bca6b3f9420e772552855b290be5851ee0a61 lighthouse.jenkins-x.io/branch: main lighthouse.jenkins-x.io/buildNum: "1783093052694" lighthouse.jenkins-x.io/context: release lighthouse.jenkins-x.io/id: capitaltrade-jarvis-main-release-sz6zg lighthouse.jenkins-x.io/job: release lighthouse.jenkins-x.io/lastCommitSHA: c35bca6b3f9420e772552855b290be5851ee0a61 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-2ttr6-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-03T15:42:17Z" - 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-03T15:43:43Z" name: greencapitaltrade-jarvis-main-78 namespace: jx resourceVersion: "158094320" uid: 2f314e52-3ff1-41c2-af15-f68f6765422a spec: baseSHA: c35bca6b3f9420e772552855b290be5851ee0a61 batchPipelineActivity: {} build: "78" buildLogsUrl: s3://logs-gct-prod-20260425045301534100000007/jenkins-x/logs/greencapitaltrade/jarvis/main/78.log completedTimestamp: "2026-07-03T15:43:36Z" context: release gitBranch: main gitOwner: greencapitaltrade gitRepository: jarvis gitUrl: https://github.com/greencapitaltrade/jarvis.git lastCommitMessage: | fix(jarvis): always post jarvis:docs marker to stop infinite re-dispatch stage-docs.sh exited without posting the marker whenever the model's ===DOC=== blocks were byte-identical to the current files (git diff --cached --quiet exited 0). The EXIT trap then stripped jarvis:docs, and route.sh re-added it on every reconcile pass of the merged PR -> a one-model- call-plus-repomix loop that never terminated. Post the marker in that no-diff case too, same as the existing "no blocks at all" no-op path, so route.sh sees docs done and clears jarvis:pr-open. Also distinguish a genuine no-op from a parse failure: a truncated model response (a ===DOC=== block opened but never closed with ===END===) used to fall through to "no doc changes to commit" and get marked done, silently hiding the truncation. It now tempfails (exit 75) so the poller retries instead of lying about the outcome. Add tests/stage-docs-noop.bats, which extracts the real parse/branch block from bin/stage-docs.sh to cover: identical-content no-op, real changes, genuine NO_CHANGES response, and truncated output. Co-Authored-By: Claude Sonnet 5 lastCommitSHA: cff868a45a512d5a36655e4f0c9ac6a9c3ecb634 message: 'Tasks Completed: 1 (Failed: 0, Cancelled 0), Skipped: 0' pipeline: greencapitaltrade/jarvis/main releaseNotesURL: https://github.com/greencapitaltrade/jarvis/releases/tag/v0.13.7 startedTimestamp: "2026-07-03T15:37:32Z" status: Succeeded steps: - kind: Stage stage: completedTimestamp: "2026-07-03T15:43:36Z" name: from build pack startedTimestamp: "2026-07-03T15:37:38Z" status: Succeeded steps: - completedTimestamp: "2026-07-03T15:37:40Z" name: Git Clone startedTimestamp: "2026-07-03T15:37:38Z" status: Succeeded - completedTimestamp: "2026-07-03T15:37:41Z" name: Next Version startedTimestamp: "2026-07-03T15:37:40Z" status: Succeeded - completedTimestamp: "2026-07-03T15:37:45Z" name: Jx Variables startedTimestamp: "2026-07-03T15:37:42Z" status: Succeeded - completedTimestamp: "2026-07-03T15:39:24Z" name: Build Test startedTimestamp: "2026-07-03T15:37:45Z" status: Succeeded - completedTimestamp: "2026-07-03T15:39:25Z" name: Check Registry startedTimestamp: "2026-07-03T15:39:25Z" status: Succeeded - completedTimestamp: "2026-07-03T15:42:00Z" name: Build Container Build startedTimestamp: "2026-07-03T15:39:25Z" status: Succeeded - completedTimestamp: "2026-07-03T15:42:17Z" name: Promote Changelog startedTimestamp: "2026-07-03T15:42:00Z" status: Succeeded - completedTimestamp: "2026-07-03T15:42:20Z" name: Promote Helm Release startedTimestamp: "2026-07-03T15:42:17Z" status: Succeeded - completedTimestamp: "2026-07-03T15:42:57Z" name: Promote Jx Promote startedTimestamp: "2026-07-03T15:42:20Z" status: Succeeded - completedTimestamp: "2026-07-03T15:43:36Z" name: Publish Org Kb startedTimestamp: "2026-07-03T15:42:57Z" status: Succeeded - kind: Promote promote: environment: production pullRequest: pullRequestURL: https://github.com/greencapitaltrade/mcu/pull/4597 startedTimestamp: "2026-07-03T15:42:54Z" status: Succeeded startedTimestamp: "2026-07-03T15:42:54Z" status: Succeeded version: 0.13.7 status: {}