rossoctl / rossoctl/cortex

feature: language toolchains and scripted HTTPS clients keep working

Open
#947 0 comments 0 reactions 1 assignee View on GitHub

@huang195 is already working on this.

Since Sep 10, 2026.

enhancement high priority
Dominant language
Go
Stars
13
Forks
40
Avg merge
12h 17m
Merged PRs (30d)
156

Description

Feature Description

A different failure mode from the git/gh/ssh case. These tools do not use the OS trust store,
so each needs its own CA environment variable, and the semantics differ per tool.
cmd_claudecode.go already documents the matrix: NODE_EXTRA_CA_CERTS extends the trust
store so it gets ca.crt, while SSL_CERT_FILE (Go: gh, abctl), GIT_SSL_CAINFO (git,
including the fetches go mod makes), REQUESTS_CA_BUNDLE (Python requests) and
CURL_CA_BUNDLE replace it, so they get bundle.crt — get that wrong and every unproxied
TLS call fails.

The gap: those variables are written into Claude Code's settings.json env block, so they
only reach processes Claude Code spawns. A tool the user runs in their own shell gets none of them.

Proposed Solution
  • Go module fetch / go get, gh, and other Go CLIs run directly by the user
  • npm / pnpm (Node), pip / uv (Python requests)
  • curl and wget, with and without proxy env set
  • Shell scripts inheriting HTTP_PROXY, HTTPS_PROXY, ALL_PROXY, NO_PROXY
  • macOS Go gap: SSL_CERT_FILE is inert on darwin — Go resolves roots through
    Security.framework and reads no files, so a Go tool cannot be pointed at a CA file by
    environment at all. Decide the supported answer (keychain install, or documented
    limitation) rather than leaving darwinGoNote as the only mitigation
  • Document the intended behaviour per tool: proxied, passed through, or unsupported
  • Unsupported combinations fail with an actionable message, never intermittently
Additional Context

Part of the Cortex v0.9.0 release. Gates exit criterion 2 (Cortex is invisible to everything else).

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.