Resolve copied-job logs, artifacts, and test results to the original job#1110
Open
skipi wants to merge 4 commits into
Open
Resolve copied-job logs, artifacts, and test results to the original job#1110skipi wants to merge 4 commits into
skipi wants to merge 4 commits into
Conversation
skipi
force-pushed
the
mk/job-rerun/job-lineage-read-path
branch
from
July 15, 2026 09:23
898da89 to
4bd8537
Compare
skipi
force-pushed
the
mk/job-rerun/job-level-partial-rerun
branch
from
July 21, 2026 07:52
a471dc0 to
daf5bb8
Compare
Additive field 28 on the Job message (26 stays reserved) so the internal job describe/list surface can expose copied-job lineage to consumers. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
source_job_id/1 returns the original job's id for copies and the job's own id otherwise; execution-data reads (logs, artifacts, test results) will go through it while identity and status keep the copy's own id. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Copied jobs read their logs (live events, raw, self-hosted redirect), artifact listings/downloads, junit test results, and velocity summary via source_job_id/1. Identity surfaces (status, badge, block lookup) and artifact destroy keep the copy's own id, so deleting from a copy can never touch the original's artifacts. The job page shows a banner linking to the original job. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
skipi
force-pushed
the
mk/job-rerun/job-lineage-read-path
branch
from
July 21, 2026 07:52
4bd8537 to
bbe8416
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Read-path resolution for copied jobs. Stacked on #1095 (which is stacked on #1094). This is the documented blocker for enabling the job-level partial rerun feature flag.
Copied jobs produced by a job-level partial rerun are lightweight rows: their logs, artifacts, and test results live under the original job's id. This PR makes the UI resolve that lineage.
Foundation
server_farm.jobvendored proto: additiveoriginal_job_idfield (28) on theJobmessage (zebra + front copies; field 26 stays reserved)InternalJobApi.Serializerincludesoriginal_job_id, so job describe/list expose itModels.Jobcarriesoriginal_job_idand provides the single resolve rulesource_job_id/1(original_job_id || id)Front indirection (all through
source_job_id/1)logs_url), agent log artifacts, loghub token generationtest-results/junit.jsonsigned URLKept on the copy's own id (deliberate)
UI
Storage services stay lineage-unaware: requesting a copy's id returns that id's (empty) data, and API consumers resolve via
original_job_idfrom job describe themselves.Tests
.describeround-trip for a copied job returnsoriginal_job_id; regular jobs return""source_job_id/1units; copied-job page renders the banner with a link to the original🤖 Generated with Claude Code