Skip to content

Pre-download trusted issue images for triage - #1922

Merged
JacobStephens2 merged 3 commits into
issue-1695from
issue-1892
Nov 10, 2026
Merged

JacobStephens2 merged 3 commits into
issue-1695from
issue-1892

Conversation

@JacobStephens2

@JacobStephens2 JacobStephens2 commented Nov 10, 2026 •

Copy link
Copy Markdown
Owner

Summary

Closes #1892.

triage <Issue>
  filter trusted body and comments
  download eligible images on the host (10 images, 20 MiB each, 30 seconds)
  write issue text + original URL/local path manifest
  start the session with cached image evidence

Markdown and HTML images on HTTPS GitHub attachment hosts are cached in .thirdshift-issue-images/ before the session starts, including --read-machine. Failed and oversized downloads warn and leave the investigation running.

Evidence

Execution evidence

  • Before: cargo test --bin thirdshift triage::images::tests::caches_markdown_and_html_images_once_and_lists_local_paths
    failed: assertion left == right failed; left: [], expected the two trusted GitHub image URLs. Result: 0 passed; 1 failed.
    After: the same command passed: 1 passed; 0 failed.
  • All six image tests and all eight existing-issue CLI tests passed. They cover extraction, trust filtering, deduplication, count/size bounds, cleanup, authentication, redirects and warning fallback.
  • UPDATE_PROMPTS=1 cargo test --bin thirdshift prompts_page: 14 passed; generated prompt/skill pages updated. npm run docs:check --prefix site passed.
  • cargo fmt --check and cargo clippy --all-targets -- -D warnings passed locally and in CI. NEXTEST_TEST_THREADS=3 /usr/bin/time -p scripts/affected-tests origin/issue-1695 passed all 67 site tests (183.38 s). Its slower local Rust run was stopped after successful CI on the identical head, reusing CI as docs/testing.md directs.
  • Full Rust validation: CI job on f23fedaa, cargo nextest run: 3941 tests run: 3941 passed (2 slow), 92 skipped. Execution took 1114.890 s; compilation was included in the step (1m 05s), for about 1181 s total. All applicable PR checks passed, including Console/site tests, static Linux builds and release smoke checks.

Seams under test

  • Existing-issue triage CLI: trusted issue input, download failure warnings and the session's retained issue text.
  • Image preparation's download seam: image syntax/origin filtering, bounds, cached files and manifest.
  • HTTP transport against a local stand-in: authentication, status errors and redirect restrictions.

Visual evidence

Manual, desktop 1440×900:

Before
After

Factory skill, desktop 1440×900:

Before
After

Manual, mobile 390×844:

Before
After

Factory skill, mobile 390×844:

Before
After

Review coverage

Independent thirdshift-code-review Standards and Spec reviews against issue-1695 at 6662e361. Standards raised one P3 finding, fixed in f23fedaa by keeping the image-inspection protocol in the Factory skill; Spec raised zero. Both axes read all 15 files in the final diff, including generated output. Changed files left unread: none. Generated-output exclusions: none.

Unaddressed findings

Standards

None. S1 was addressed and rechecked by its reviewer.

Spec

None.

Security

None.

Security review outcome

No unaddressed introduced findings.

Merge Danger

Door: two-way

Revert to remove the cache preparation; there is no persistent data migration.

Blast Radius: Triage

Existing-issue Triage preparation and its embedded skill; each image failure falls back to the issue text.

Built with codex codex-cli 0.164.0 · gpt-6.1-sol · xhigh

Keep image preparation in the shared Triage investigation path and retain both image-cache and unattended-Pass navigation entries.

Validation: scripts/affected-tests main passed (3,951 Rust tests; 67 site checks). The Rust step took 2,958.41 seconds including compilation. Pickup model regressions, strict Clippy and formatting also passed.
@JacobStephens2
JacobStephens2 merged commit cb7af0d into issue-1695 Nov 10, 2026
16 checks passed
@JacobStephens2
JacobStephens2 deleted the issue-1892 branch November 10, 2026 02:34
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.

1 participant