ci: cross-repo fresh-shell PATH-persistence guard for install.sh#62
Conversation
|
👋 Heads-up — Code review queue is at 17 / 8 Above the WIP limit. The team convention is to review existing PRs before opening new work. Open PRs currently in Code review (oldest first):
Pull from review before opening new work. (This is a nudge from the kanban WIP check, not a block.) |
|
Board hygiene 2026-07-07 (Lukas + Claude): reviewed against the current direction — still valid, not superseded (the cross-repo fresh-shell PATH guard is orthogonal to Rev 8/9 and arguably more valuable now that the installer also drops a |
|
bugbot run |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit bb35efa. Configure here.
Adds a label-gated (+nightly) CI job that catches a PATH-persistence regression in this repo's scripts/install.sh from the CLI side, pre-merge: a change that persists PATH only where a fresh non-login shell can't read it (the class that shipped green originally) fails CI before it merges. The fresh-shell harness is the single source of truth in tracebloc/client (scripts/tests/path-persist.sh); this job checks it out and points it at the PR's install.sh. Tracks the harness on client's develop (it has since merged there), resolving the original pin-to-feature-branch TODO. Part of #737. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
bb35efa to
b48f9bd
Compare
|
@BugBot run |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit b48f9bd. Configure here.
|
👋 Heads-up — Code review queue is at 43 / 30 Above the WIP limit. The team convention is to review existing PRs before opening new work. Open PRs currently in Code review (oldest first):
Pull from review before opening new work. (This is a nudge from the kanban WIP check, not a block.) |
Part of #737
Summary
Adds a thin, label-gated CI job that catches a PATH-persistence regression in this repo's
scripts/install.shfrom the CLI side, pre-merge — instead of only after a release. This is the gap that let the original PATH issue ship green: no test opened a fresh shell after install and assertedtraceblocwas reachable. A fresh non-login bash reads~/.bashrc, not~/.profile/~/.bash_profile, so an installer that persists PATH to the wrong file looks fine in the install shell but breaks in a new terminal.What changed
New workflow
.github/workflows/install-path-persist.yml. It does not re-implement the check — the fresh-shell harness lives in tracebloc/client (scripts/tests/path-persist.sh) as the single source of truth (added in tracebloc/client#214). This job:actions/checkout,path: cli).actions/checkoutwithrepository: tracebloc/client,path: client).TRACEBLOC_CLI_REF=/src/cli/scripts/install.sh— a local file path, so the harness installs this PR'sinstall.sh(not the released one) and then assertstraceblocresolves +tracebloc versionruns from a fresh login and non-login shell for each of bash / zsh / fish.Distro slice:
ubuntu:24.04,debian:12,fedora:latest,opensuse/leap:15.6(apt / dnf / zypper init families) — a representative subset; the full distro x shell x mode matrix runs in the client repo.How it's triggered
Mirrors this repo's
e2e.ymlgating to control cost:scheduleworkflow_dispatche2elabel (contains(github.event.pull_request.labels.*.name, 'e2e')), and only whenscripts/install.shor this workflow change.Refs
CLIENT_HARNESS_REFenv var, with aTODO(client#214)to switch todeveloponce that PR merges (the harness doesn't exist on client'sdevelopyet).Verified locally / Needs CI
Verified locally (green):
yaml.safe_loadon the workflow — parses.actionlinton the workflow — clean.Needs CI (requires GitHub runners / Docker — not run locally):
CLIENT_HARNESS_REFtodevelop.e2elabel.Note
Low Risk
CI-only addition with read-only checkouts; no runtime or installer logic changes in this diff.
Overview
Adds
.github/workflows/install-path-persist.yml, a pre-merge CI guard so regressions inscripts/install.shPATH persistence fail before merge (fresh terminals can’t findtracebloc).The workflow mirrors
e2e.ymltriggers: nightly schedule,workflow_dispatch, and PRs only with thee2elabel whenscripts/install.shor this workflow changes. It checks out this repo’s PR tree andtracebloc/clientatCLIENT_HARNESS_REF: develop, then runsclient/scripts/tests/path-persist.shin Docker across four distros withTRACEBLOC_CLI_REF=/src/cli/scripts/install.shso the harness exercises this PR’s installer, not a released build.Reviewed by Cursor Bugbot for commit b48f9bd. Bugbot is set up for automated code reviews on this repo. Configure here.