Skip to content

Show GitHub target link and title on log reader pages - #2240

Merged
JacobStephens2 merged 5 commits into
mainfrom
issue-2233
Nov 15, 2026
Merged

JacobStephens2 merged 5 commits into
mainfrom
issue-2233

Conversation

@JacobStephens2

@JacobStephens2 JacobStephens2 commented Nov 15, 2026 •

Copy link
Copy Markdown
Owner

Summary

 Command recording (src/logs/command_record.rs, recording.rs, review.rs, fix.rs, triage/)
+  CommandRecord.pull_request_title (#[serde(default, skip_serializing_if = "Option::is_none")])
+  persist PR/issue titles when starting Review, Fix, Delivery base-CI repair, and Triage runs

 Log reader resolution (src/logs/reading/catalog.rs, src/logs/status/target.rs, src/console/logs.rs)
-  /log dropped selected Observation; /logs/{id} collapsed onto outer Pickup entry
+  open_command / open_listed_log retain selected Command's Snapshot Observation
+  GitHubTarget::from_observation builds validated primary issue/PR and opened-PR TargetLinks

 Fleet remote /log?machine=... (src/console/logs.rs, src/logs/status/target.rs)
+  best-effort fetch of /peek alongside /api/v1/log (/api/v1 JSON schemas unchanged)
+  GitHubTarget::from_details validates repository slug, HTTPS github.com URL, and titles

 Console reader HTML & docs (src/console/reader.html, console.css, docs/guide.md, site/)
+  render primary TargetLink + title and opened-PR links below Command log / Session trace heading

Local /log, /logs/{id}, Session trace views, and Fleet remote /log?machine=... display the Command's GitHub issue or pull request link and title when present while preserving Scope::Security, Other-account Command confinement, and empty target omission on repo-wide Passes.

Evidence

Execution evidence

  • Before: (from_details_rejects_missing_or_dot_segment_repository_urls run before fixing src/logs/status/target.rs)
    cargo test --bin thirdshift logs::status::target::tests
    -> FAILED at src/logs/status/target.rs:471:9
       left: Some(GitHubTarget { primary: Some(TargetLink { label: "../widgets#7", url: Some("https://github.com/../widgets/issues/7"), title: Some("x") }), pull_requests: [TargetLink { label: "other/repo#9", url: Some("https://github.com/other/repo/pull/9"), title: None }] })
       right: None
    
  • After:
    • cargo test --bin thirdshift logs::status::target::tests -> test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 1926 filtered out (keeps from_details_rejects_missing_or_dot_segment_repository_urls)
    • cargo fmt --check && cargo clippy --all-targets -- -D warnings -> exited 0
    • PATH=/home/jstephens/.cargo/bin:/usr/local/bin:/usr/bin:/bin /usr/bin/time -p scripts/affected-tests main < /dev/null -> exited 0 (real 1462.80, with /home/jstephens/.local/bin excluded from PATH so host agy does not interfere with tests/plan_usage.rs):
      • npm test --prefix site: 69 passed; 0 failed; 0 skipped (44.78s; includes npm run docs:check)
      • cargo build --locked: exited 0 (0.18s)
      • npm test --prefix console: 250 passed; 0 failed; 0 skipped (139.92s)
      • cargo test (cargo nextest unavailable): 4646 passed; 0 failed; 209 ignored across 114 test result blocks (1277.82s)

Visual evidence

  • Limitation (Gist scope): Playwright Chromium captures at 1440×900 (desktop) and 390×844 (mobile) were captured and inspected locally for both Before (detached refs/remotes/origin/main worktree, showing only log path and thirdshift logs --file ... under <h1>Command log</h1>) and After (showing acme/widgets#7 + issue title and PR acme/widgets#18 + PR title cleanly under <h1>Command log</h1> with zero horizontal overflow at 390×844). Secret-Gist upload via gh gist create failed with HTTP 404: Not Found (https://api.github.com/gists) / This API operation needs the "gist" scope (configured gh token scopes are read:org, repo, workflow), so external raw Gist image URLs could not be attached in this environment.

Unaddressed findings

  • None. All 5 Standards findings and 1 Spec finding reported by the two-axis review (refs/remotes/origin/main...227800a6) were addressed on commit 5476bffc; no findings were declined or deferred to needs-triage.
  • Review coverage: Both Standards and Spec reviewers read all 29 non-excluded changed files against refs/remotes/origin/main. Generated file site/docs/index.html was excluded from direct reading per repo policy and verified from its sources (docs/guide.md, site/generate-docs.mjs) with npm run docs:check --prefix site and npm test --prefix site. Zero changed files were left unread; subsequent review fixes (src/issue.rs reverted to main, src/logs/status/target.rs, src/console/logs.rs, src/console.rs, src/logs/reading/catalog.rs, site/how-it-works/index.html) were re-validated end-to-end with cargo fmt, cargo clippy --all-targets -- -D warnings, and scripts/affected-tests main.

Security

  • None. Reviewed git diff dbf17d2e8c22208a009bd7d1ef999589e81b9bcd...HEAD (including supporting console, logs, triage, and site code paths) against dbf17d2e8c22208a009bd7d1ef999589e81b9bcd; zero unaddressed introduced Security findings.

Security review outcome

No unaddressed introduced findings.

Merge Danger

Door: two-way

Additive CommandRecord.pull_request_title field (#[serde(default, skip_serializing_if = "Option::is_none")]), HTML target header rendering, and documentation updates revert cleanly with no storage migration.

Blast Radius: Low

/api/v1/log and /api/v1/logs JSON contracts are unchanged, Scope::Security and Other-account Command confinement remain enforced, URL/slug validation rejects malformed, cross-repo, or dot-segment URLs via crate::github::valid_repo_slug before rendering links, and long titles wrap cleanly on 390 px phones.

Closes #2233

Built with agy 1.5.6 · gemini-4-hydrogen-xhigh · default effort

…nse contained an improperly formatted function call: Malformed function call: Failed to parse function call: Function call is empty - no input to parse.)

2026-11-15T02:10:24Z, host factory.etadventures.com. Uncommitted work at the time of failure is included in this commit.
@JacobStephens2
JacobStephens2 marked this pull request as ready for review November 15, 2026 03:19
@JacobStephens2
JacobStephens2 merged commit 021187e into main Nov 15, 2026
25 checks passed
@JacobStephens2
JacobStephens2 deleted the issue-2233 branch November 15, 2026 03:48
@JacobStephens2 JacobStephens2 mentioned this pull request Nov 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

make command log page show the GitHub issue or pr being worked on if there is one and the title of that issue or pr

1 participant