Skip to content

feat(ssh): add manual Codex cost aggregation to the native UI - #3687

Open
A-l-an wants to merge 14 commits into
steipete:mainfrom
A-l-an:feat/codex-ssh-cost-cli
Open

A-l-an wants to merge 14 commits into
steipete:mainfrom
A-l-an:feat/codex-ssh-cost-cli

Conversation

@A-l-an

@A-l-an A-l-an commented Sep 16, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds Manual SSH cost statistics to Settings → Providers → Codex. Enter one SSH destination, click Refresh server statistics, and see this Mac's and the server's native Codex usage together in the existing Today/history cost card and daily chart.

  • Adds a default-off Include one SSH server switch, an SSH destination field, and an optional remote Codex home (normally ~/.codex).
  • Displays combined tokens and API-equivalent costs in the existing card and chart, including dates with server-only usage. The source and last collection time remain visible alongside the numbers.
  • Counts identical session copies and verified complete shared prefixes once, retaining the longer session's additional usage. Local Priority/Fast pricing is preserved through the joint scan; ambiguous evidence still falls back safely.
  • Keeps refresh explicit. Saving settings, enabling the switch and opening a menu do not fetch logs. The first refresh asks for consent to temporarily copy raw logs; Cancel remains available during a request.
  • Retains the local view when a server is unavailable or a request is cancelled. Hide Personal Info masks the host and path. Temporary log copies and scan files are removed before publishing a result.
  • Uses existing SSH aliases and jump-host configuration. The Linux server needs rsync, GNU find, stat, and sha256sum; a remote CodexBar CLI and Agent Sessions are not required.

Try it: enable the switch, enter an alias such as research-server, confirm the remote Codex home, and click Refresh server statistics. If a managed-account scope is selected, first choose Use this Mac’s native history. The shared native-log scope receives the server contribution once; account quota bars and managed-account rows retain their existing scopes.

Why this matters

When a MacBook is used to SSH into a Linux development host, Codex work performed on that host is recorded there. CodexBar running on the Mac only sees the Mac’s local history, so the server’s tokens and estimated cost are missing from that view. Account-wide quota bars do not fill this gap: they answer a different question from historical tokens and API-equivalent cost.

Issue #3036 describes this Mac + Linux workflow. Subsequent users independently report the same gap: a MacBook connected to an SSH desktop, specifically requesting menu visibility and copied-session deduplication, and macOS + a Linux VM. This PR makes that concrete workflow reviewable in the existing cost card and daily chart.

Live UI proof

Freshly built App, using the production settings, cost-card and chart views in an isolated native window, connected over real SSH to a Debian 12 container hosted on a remote Intel Mac. These are synthetic sessions with known expected results. Tested implementation: 8f1df3474591fd4f4838a6b618b80c00e3cace1d.

Configured SSH source, combined Today/history values, and a daily chart containing the remote-only date:

Live native settings, combined cost card and daily chart

The fixture includes a copied session prefix plus additional remote usage:

Scope Today tokens / estimated USD 7-day tokens / estimated USD
This Mac before refresh 220,000 / $0.732 330,000 / $1.098
This Mac + server after deduplication 550,000 / $1.830 715,000 / $2.379

The chart also gains September 13: 55,000 tokens / $0.183, present only on the server. The GUI rounds dollar values to cents. Deduplication produces $2.379 over seven days; simply adding the two machines would incorrectly show $3.477.

First-refresh disclosure, privacy masking, and failure/cancellation views

The first refresh explains that raw logs may contain conversations and project paths:

First-refresh raw-log disclosure

Hide Personal Info masks both inputs and the displayed source without changing the totals:

Live settings and chart with personal information hidden

An unreachable endpoint retains the original local card and chart with a readable error:

Unreachable server falls back to local statistics

Cancelling an active transfer returns to local statistics after temporary data is removed:

Cancelled refresh with local statistics retained

The normal installed menu-bar instance and live-account login/quota flows were not used for this acceptance run; the proof window therefore shows “Not fetched yet” for the unprobed quota header. Full receipts and isolation limits are linked under Verification.

Accounting and refresh behavior

  • Off by default. One saved SSH destination and optional remote Codex home. Saving, enabling, opening a menu and ordinary local refreshes make no SSH requests.
  • An explicit Refresh server statistics action collects native sessions and archived_sessions JSONL, then scans a canonical local/remote union once. Exact copies count once; verified complete ordered prefixes retain their longer suffix; different session identities remain independent.
  • The card and chart use one frozen snapshot, common calendar and pricing context, including remote-only dates. It belongs to the ambient native-log scope, not every managed account; quota bars, other providers and the ordinary Spend Dashboard keep their own scopes.
  • Unsupported overlaps, unavailable ancestry, retained local history that cannot be reconstructed, known pricing evidence that cannot be preserved, failed transfers and incomplete scans fall back to local presentation. Unknown prices stay unknown.
  • Changing the SSH source or reporting window clears the previous combined result.

Privacy and boundaries

The first refresh explicitly discloses that temporary raw JSONL can contain conversations and project paths. Private request directories and files are removed before publication; failed cleanup is visible and retryable. A foreground guardian retains the activity lock until transfer writers have stopped, including if the App exits unexpectedly. Startup cleanup only considers valid owned inactive requests.

SSH is noninteractive with strict host-key checks. The Linux server needs GNU find, stat, sha256sum and rsync; it does not need a CodexBar CLI. Budgets and supported log/configuration shapes are documented in the native SSH guide. The 512 MiB received-data threshold is monitored, not a hard filesystem quota; temporary scan SQLite storage is additional. Estimates do not claim invoice parity or every fork/export shape.

Priority/Fast fix and current verification

The joint scan previously rejected any retained local Priority tokens or relevant local trace evidence, making ordinary Fast histories fall back to Only this Mac. It now preserves row-owned pricing through canonicalization, scopes trace evidence to the local session and turn, and rebuilds the native Standard/Priority breakdown using the frozen pricing context. Conflicting trace owners, unmatched retained rows and unsupported inline tier evidence still fail closed.

Validation for 81da9ad7f5fb4be2e1d647a208d00b8fd7666b02:

  • make check: passed with zero SwiftLint violations.
  • Mac make test: 108/108 groups passed; test summaries report 11,247 tests, with 0 failures, retries or timeouts.
  • Real SSH scan of synthetic history, Mac → xiemac-hosted Linux container: 330 tokens, split into 220 Priority and 110 Standard, for $0.00125 at the fixture's custom Standard prices and native API Fast multiplier. The verified shared prefix counts once; a separate server session reusing the turn ID remains Standard.
  • Synthetic local logs and trace bytes remained unchanged; no ordinary local cache was created; temporary scan files and the remote fixture were removed.
  • Upstream CI for the current head: action_required, awaiting maintainer approval; this is not a passing CI result.
  • Independent source review passed. The Linux-hosted SSH transport was exercised; the Linux Swift build and native menu-bar UI were not rerun for this accounting-only fix. Earlier UI/Linux results below apply to their named commits.

Priority/Fast fix evidence

Earlier validation remains available: review fixes at 76a3ee2d cover the main-actor fingerprint cache, nested manifest error propagation, upstream conflict resolution, full Mac/Linux tests, and protected native UI checks. Native acceptance at 8f1df347 documents disclosure, manual refresh, chart/card presentation, privacy masking, recovery and cancellation. Receiving-permissions follow-up covers macOS system openrsync.

Decision needed

This PR still requires maintainer product sign-off. The earlier discussion favored a narrow one-shot CLI direction; it did not approve this expanded native UI or temporary raw-log privacy contract. Maintainer approval of those boundaries is still required under VISION.md. The linked issue demonstrates concrete user demand, not an approval or a claim that this closes the whole request.

Related to #1566, #3036, #3538 and #3545. This implementation builds on CodexBar's existing native scanner, pricing context and process-group helpers; existing upstream/vendored attribution is retained.

@clawsweeper

clawsweeper Bot commented Sep 16, 2026

Copy link
Copy Markdown

🦞👀
ClawSweeper picked this up.

Pull request received. I will update this pull request when review starts.

ClawSweeper review complete

ClawSweeper finished reviewing this revision. The review result is being finalized.

View the workflow run.

@clawsweeper clawsweeper Bot added P2 Normal priority bug or improvement with limited blast radius. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. labels Sep 16, 2026
@clawsweeper

clawsweeper Bot commented Sep 16, 2026

Copy link
Copy Markdown

Codex review: blocked before merge. Reviewed September 17, 2026, 2:22 AM ET / 06:22 UTC (Revision 10).

ClawSweeper review

What this changes

Adds default-off, manually refreshed SSH collection that combines verified local and remote Codex histories in the native cost card and chart while preserving local Priority pricing.

Merge readiness

Blocked before merge - 3 items remain

This remains useful, distinct work for a demonstrated cross-device reporting gap. The earlier findings are addressed, and the supplied runtime evidence supports the revised implementation; product and privacy acceptance remain unresolved.

Priority: P2
Reviewed head: d7b31d50f9e5ddf31901a258be71d92b9f8d921e
Owner decision: Required. See Decision needed.

Review scores

Measure Result What it means
Overall readiness 🐚 platinum hermit (4/6) Substantial, source-linked runtime evidence supports a coherent implementation with no new blocking finding; unresolved product approval does not reduce its quality rating.
Proof confidence 🦞 diamond lobster (5/6) ✨ media proof bonus Sufficient (linked_artifact): Production native views and real Mac-to-Linux SSH exercise collection, deduplication, consent, masking, fallback, and cancellation; the latest production-fetcher/guardian receipt separately proves the revised Priority split and cleanup. Evidence is revision-specific and does not claim installed-menu or live-account coverage.
Patch quality 🐚 platinum hermit (4/6) No actionable review findings were identified.

Verification

Check Result Evidence
Real behavior Verified Sufficient (linked_artifact): Production native views and real Mac-to-Linux SSH exercise collection, deduplication, consent, masking, fallback, and cancellation; the latest production-fetcher/guardian receipt separately proves the revised Priority split and cleanup. Evidence is revision-specific and does not claim installed-menu or live-account coverage.
Evidence reviewed 10 items Repository policy and scope: Read the full root AGENTS.md; no nested AGENTS.md or maintainer-notes directory was found. Applied provider isolation, safe validation, concurrency, and native-proof guidance. VISION.md requires sign-off for features, maintenance complexity, and privacy/storage changes.
Current main still has the reporting gap: Current-main cost documentation describes local managed or ambient histories. Searching the app, core, CLI, and relevant documentation found no SSH cost aggregation implementation; the existing remote-session feature serves a different purpose.
Latest release contract: Inspected the supplied v0.60.4 revision through GitHub after a local historical-blob read failed. Its cost options support local reporting, history windows, and native-only filtering, without an SSH cost mode.
Findings None None.
Security None None.

How this fits together

CodexBar derives token and estimated-cost history from native Codex session logs. This change brings one selected server’s logs through temporary private storage into the existing scanner, then presents a deduplicated snapshot in the native interface.

flowchart LR
  A[Manual refresh and consent] --> B[SSH collection]
  C[Server session logs] --> B
  B --> D[Private temporary storage]
  E[Local logs and pricing evidence] --> F[Verified combined scan]
  D --> F
  F --> G[Cleanup before publication]
  G --> H[Cost card and daily chart]
Loading

Decision needed

Question Recommendation
Should CodexBar accept this manual native UI feature with temporary raw-log copying and deferred cleanup after forced exit? Approve the bounded manual native scope: Accept the documented retention boundary and one-server manual workflow, supported by the supplied deduplication, recovery, and privacy evidence.

Why: VISION.md reserves new features and privacy/storage behavior for sign-off, and the earlier owner discussion did not approve this expanded native scope.

Before merge

  • Resolve merge risk (P1) - Enabling this feature copies conversations and project paths onto the Mac; after forced exit, private raw files can remain until a later launch performs cleanup. Acceptance of that native-app privacy contract is still unconfirmed.
  • Complete next step (P2) - Obtain explicit owner approval for the manual native scope, temporary raw-log transfer, and deferred cleanup after forced exit.
  • Resolve maintainer decision - Resolve the maintainer decision shown above before merge.
Agent review details

Security

None.

Review metrics

Metric Value Why it matters
Source and test growth Source files +3,575/-111; tests +3,171/-43 The source growth includes 423 lines in debug-only proof files; the remaining expansion supports collection, cleanup, deduplication, pricing preservation, and native integration.

Root-cause cluster

Relationship: fixed_by_candidate
Canonical: #3036
Summary: This is a candidate for the Mac/Linux reporting request, with a distinct native aggregation and deduplication contract; the alternatives do not supersede it.

Members:

Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything.

Merge-risk options

Maintainer options:

  1. Accept the documented temporary-log boundary (recommended)
    Explicitly approve raw-log copying and next-launch cleanup after forced exit before landing the manual native feature.
  2. Defer native integration
    Pause this native proposal if the owner prefers to establish the narrower CLI privacy contract first.

Technical review

Best possible solution:

Keep a single explicitly refreshed native-log scope with verified deduplication, frozen pricing, local fallback, and an owner-approved raw-log retention contract.

Do we have a high-confidence way to reproduce the issue?

Not applicable to an existing-behavior bug: this adds cross-device reporting. Supplied real SSH receipts demonstrate the new behavior with known synthetic inputs.

Is this the best way to solve the issue?

Unclear until scope approval: the joint scanner solves copied-session deduplication that separate numeric reports cannot, but requires accepting temporary raw-log transfer.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning medium; reviewed against b6e65a83dc47.

Labels

Label justifications:

  • P2: This is a concrete optional reporting improvement with a bounded one-server scope; existing local reporting remains available.
  • merge-risk: 🚨 security-boundary: The native feature introduces temporary cross-machine copying of sensitive raw logs with a deferred forced-exit cleanup contract.
  • rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🦞 diamond lobster and patch quality is 🐚 platinum hermit.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Sufficient (linked_artifact): Production native views and real Mac-to-Linux SSH exercise collection, deduplication, consent, masking, fallback, and cancellation; the latest production-fetcher/guardian receipt separately proves the revised Priority split and cleanup. Evidence is revision-specific and does not claim installed-menu or live-account coverage.
  • proof: sufficient: Contributor real behavior proof is sufficient. Production native views and real Mac-to-Linux SSH exercise collection, deduplication, consent, masking, fallback, and cancellation; the latest production-fetcher/guardian receipt separately proves the revised Priority split and cleanup. Evidence is revision-specific and does not claim installed-menu or live-account coverage.

Evidence

What I checked:

  • Repository policy and scope: Read the full root AGENTS.md; no nested AGENTS.md or maintainer-notes directory was found. Applied provider isolation, safe validation, concurrency, and native-proof guidance. VISION.md requires sign-off for features, maintenance complexity, and privacy/storage changes. (VISION.md:13, d7b31d50f9e5)
  • Current main still has the reporting gap: Current-main cost documentation describes local managed or ambient histories. Searching the app, core, CLI, and relevant documentation found no SSH cost aggregation implementation; the existing remote-session feature serves a different purpose. (docs/codex.md:205, b6e65a83dc47)
  • Latest release contract: Inspected the supplied v0.60.4 revision through GitHub after a local historical-blob read failed. Its cost options support local reporting, history windows, and native-only filtering, without an SSH cost mode. (Sources/CodexBarCLI/CLICostCommand.swift:866, 937b20813cf4)
  • Owner discussion and related demand: The owner welcomed a narrower explicit CLI rewrite with temporary mirroring and joint scanning, while reserving approval for app/privacy behavior: [codex] Add remote Codex cost logs #1566 (comment). The discussion at Feature Request: codexbar cost --remote <ssh-host> for explicit cross-device Codex cost aggregation #3036 includes independent requests for Mac/Linux aggregation, menu visibility, and copied-session deduplication. The earlier PR was closed unmerged.
  • Re-review continuity: GitHub's comparison against the last reviewed head identifies the new Priority-accounting changes and supporting tests/proof. Current source confirms detached, coalesced context reads and preservation of nested manifest failure codes. Local historical comparison encountered unavailable blobs; the GitHub comparison supplied the revision delta instead. (Sources/CodexBar/CodexRemoteCostContextCache.swift:140, d7b31d50f9e5)
  • Native and transport proof: Inspected the prepared combined, consent, privacy-masking, and fallback images. Read the native acceptance and follow-up receipts: production views, mirror, guardian, and scanner ran over real Mac-to-Linux SSH with synthetic logs, producing 715,000 tokens/$2.379 rather than double-counting the shared prefix. Recorded cancellation and normal shutdown removed temporary data. These captures exercise isolated production views, not the installed menu-bar instance or live-account authentication. (.github/pr-proof/codex-ssh-native-runtime.md:8, d7b31d50f9e5)

Likely related people:

  • steipete: Suggested for follow-up; no historical authorship or introduction is verified. (role: unverified routing candidate; confidence: low)
  • brzvsk: Suggested for follow-up; no historical authorship or introduction is verified. (role: unverified routing candidate; confidence: low)

Rating scale

Score Internal tier Crab rank Meaning
6/6 S 🦀 challenger crab Exceptional readiness
5/6 A 🦞 diamond lobster Very strong readiness
4/6 B 🐚 platinum hermit Good normal PR; ordinary maintainer review
3/6 C 🦐 gold shrimp Useful, but confidence is limited
2/6 D 🦪 silver shellfish Proof or implementation needs work
1/6 F 🧂 unranked krab Not merge-ready
N/A NA 🌊 off-meta tidepool Rating does not apply

Overall follows the weaker of proof and patch quality.
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

Workflow

  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

History

Review history (9 earlier review cycles; latest 8 shown)
  • reviewed 2026-09-16T12:39:16.473Z sha 761afe3 :: needs real behavior proof before merge. :: none
  • reviewed 2026-09-16T12:51:26.214Z sha c394b72 :: blocked before merge. :: none
  • reviewed 2026-09-16T12:55:09.236Z sha c394b72 :: blocked before merge. :: none
  • reviewed 2026-09-16T15:16:32.402Z sha cac2b92 :: blocked before merge. :: none
  • reviewed 2026-09-16T16:18:33.038Z sha cac2b92 :: blocked before merge. :: none
  • reviewed 2026-09-16T16:34:22.524Z sha cac2b92 :: blocked before merge. :: none
  • reviewed 2026-09-16T16:54:45.280Z sha cddb80a :: blocked before merge. :: [P2] Move context fingerprinting off the main actor | [P2] Preserve nested manifest validation failure categories
  • reviewed 2026-09-17T05:23:18.556Z sha b4bee61 :: blocked before merge. :: none

@A-l-an

A-l-an commented Sep 16, 2026

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

Added the requested captured runtime evidence in c394b721c4e5471d835d900aefdec362ec52c973: readable output and complete JSON/provenance. The PR body now includes separate-report stdout, a real disconnected-endpoint result retaining local usage, and recorded SIGINT/SIGTERM/SIGHUP local SSH-child cleanup diagnostics.

The tested implementation remains 761afe3b9fa21f5abe2c7bb01a90faf8f1779656; this follow-up only publishes evidence, with production code and tests unchanged. Maintainer approval of the single-host CLI scope remains explicitly pending; the evidence update does not claim product sign-off or merge readiness.

@clawsweeper

clawsweeper Bot commented Sep 16, 2026

Copy link
Copy Markdown

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event exact_review_queue).
Result: when the review finishes, ClawSweeper will create the durable review comment if needed or update the existing comment in place.

@clawsweeper clawsweeper Bot added proof: sufficient Contributor real behavior proof is sufficient. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. and removed status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. labels Sep 16, 2026
@A-l-an A-l-an changed the title Add one-shot SSH Codex cost reports to the CLI Add manually refreshed SSH Codex costs to the native history view Sep 16, 2026
@clawsweeper clawsweeper Bot added the merge-risk: 🚨 security-boundary 🚨 Merging this PR could weaken sandboxing, authorization, credentials, or sensitive data. label Sep 16, 2026
@A-l-an A-l-an changed the title Add manually refreshed SSH Codex costs to the native history view feat(ssh): add manual Codex cost aggregation to the native UI Sep 16, 2026
@A-l-an
A-l-an marked this pull request as ready for review September 16, 2026 16:37
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 16, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-16T16:44:44.880596Z cac2b92 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: cac2b9298d

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

else exit 44
fi
done
' sh "$home" \#(limits.fileBytes) {} + || exit 46

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve manifest validation exit statuses

When a nested entry is unreadable or unsafe, or a JSONL file exceeds the per-file limit, the inner shell exits with 43, 44, or 45, but find ... || exit 46 converts every such failure to 46. CodexRemoteLogMirrorProcess.failure consequently reports these permanent conditions as unstableSource, telling users to retry instead of identifying inaccessible, unsafe, or oversized logs; propagate the validation failure rather than unconditionally replacing its status.

Useful? React with 👍 / 👎.

calendar: calendar,
day: calendar.startOfDay(for: now),
pricingRevision: revision,
sshRevision: CodexRemoteLogMirror.configurationFingerprint(environment: self.environmentBase),

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Move remote-context fingerprinting off the main actor

When the SSH-cost option is enabled, every call to codexRemoteCostPresentation or codexCostPresentationSnapshot rebuilds this context on UsageStore's main actor. A single menu construction invokes those selectors repeatedly, and each invocation synchronously rereads the pricing files and calls configurationFingerprint, which may open and hash up to 4,096 included SSH configs totaling 8 MiB; a large but accepted Include glob therefore causes repeated filesystem scans and visible menu/UI stalls. Cache or asynchronously compute the revision rather than performing the full fingerprint on each presentation lookup.

Useful? React with 👍 / 👎.

@clawsweeper clawsweeper Bot added rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. and removed status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. labels Sep 16, 2026
@clawsweeper clawsweeper Bot added status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. and removed rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. labels Sep 16, 2026
@clawsweeper clawsweeper Bot added rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. and removed status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. labels Sep 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merge-risk: 🚨 security-boundary 🚨 Merging this PR could weaken sandboxing, authorization, credentials, or sensitive data. P2 Normal priority bug or improvement with limited blast radius. proof: sufficient Contributor real behavior proof is sufficient. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant