Show related pull requests - #115
Conversation
Co-authored-by: Jon Tirsen <tirsen@squareup.com> Signed-off-by: Jon Tirsen <tirsen@squareup.com>
Co-authored-by: Jon Tirsen <tirsen@squareup.com> Signed-off-by: Jon Tirsen <tirsen@squareup.com>
Co-authored-by: Jon Tirsen <tirsen@squareup.com> Signed-off-by: Jon Tirsen <tirsen@squareup.com>
Co-authored-by: Jon Tirsen <tirsen@squareup.com> Signed-off-by: Jon Tirsen <tirsen@squareup.com>
Co-authored-by: Jon Tirsen <tirsen@squareup.com> Signed-off-by: Jon Tirsen <tirsen@squareup.com>
Co-authored-by: Jon Tirsen <tirsen@squareup.com> Signed-off-by: Jon Tirsen <tirsen@squareup.com>
Co-authored-by: Jon Tirsen <tirsen@squareup.com> Signed-off-by: Jon Tirsen <tirsen@squareup.com>
Co-authored-by: Jon Tirsen <tirsen@squareup.com> Signed-off-by: Jon Tirsen <tirsen@squareup.com>
Co-authored-by: Jon Tirsen <tirsen@squareup.com> Signed-off-by: Jon Tirsen <tirsen@squareup.com>
Extract the PR identity, status, and external-link treatment so the session rail and tracker can render the same recognizable row. Co-authored-by: Jon Tirsen <tirsen@squareup.com> Signed-off-by: Jon Tirsen <tirsen@squareup.com>
loganj
left a comment
There was a problem hiding this comment.
🤖 Carl here. Approved — no blocking or material findings.
I reviewed exact head 4d2efade31e3394a9a0c28fdae81067199e6c5d7 and traced the transcript scanner, GitHub/Graphite URL canonicalization and bounds, the Tauri gh execution boundary, experiment gating, query/render path, opener behavior, accessibility, and check-state classification.
The important security boundary holds: the backend independently requires an exact HTTPS GitHub host and PR path shape, reconstructs the canonical URL, invokes gh without a shell, bounds count/concurrency/time, disables prompting, and degrades to identity-only summaries on command or parse failure. Incremental scanning correctly excludes the live streaming message and rebuilds when previously scanned immutable message references change.
Mongo and Princess Donut independently reached the same no-finding verdict. Current GitHub checks are green at this exact head across frontend tests/build, frozen install, transcript virtualization, DCO, and Linux/macOS/Windows Rust jobs.
Non-blocking hardening only: a focused Rust assertion for traversal-shaped or encoded owner/repo segments would make the URL-parser security contract even more explicit, but the present validation and shell-free canonicalized invocation already prevent exploitation.
loganj
left a comment
There was a problem hiding this comment.
🤖 Carl here. APPROVE — no blockers or material findings.
Severity-ranked review
- Blockers: none.
- Material concerns: none. The security boundary holds: exact HTTPS GitHub URL validation and canonical reconstruction, shell-free bounded
ghinvocation, prompt disabling/timeouts/fallbacks, safe React rendering and opener input, and correct live-message/patched-history scan behavior. - Non-blocking hardening: consider adding a focused Rust parser test for traversal-shaped or encoded owner/repo segments. This would pin the security contract; it does not close a current exploit path.
Mongo, Princess Donut, and I independently reviewed exact head 4d2efade31e3394a9a0c28fdae81067199e6c5d7 and converged on the same verdict. The exact-head GitHub checks are green.
Why
Move the archived internal PR for session-related pull requests onto the current public Berd repository so users can see the PRs associated with a chat.
What
ghRisk Assessment
Low — the UI is behind the existing opt-in experiment, metadata access is bounded and read-only, and opening a row only launches its validated GitHub URL.
References
cd8415a1-d910-4e0c-814c-42664d30a09eLAWS/README.mdandLAWS/CHAT.md; this feature does not change the durable chat queue, dispatch, steering, or activity-presentation invariants.Generated with Codex