John T. Myers
0cef26521a
feat(providers): derive discovery from profiles ( #1503 )
...
* feat(providers): derive discovery from profiles
Signed-off-by: John Myers <9696606+johntmyers@users.noreply.github.com >
* fix(providers): keep v2 discovery profile-only
Signed-off-by: John Myers <9696606+johntmyers@users.noreply.github.com >
* docs(providers): update providers v2 behavior
Signed-off-by: John Myers <9696606+johntmyers@users.noreply.github.com >
* fix(providers): make github profile read-only
Signed-off-by: John Myers <9696606+johntmyers@users.noreply.github.com >
---------
Signed-off-by: John Myers <9696606+johntmyers@users.noreply.github.com >
2026-05-22 08:54:15 -07:00
Eric Curtin
5620c8b229
refactor: deduplicate repeated patterns across crates ( #1499 )
...
Remove ~280 lines of duplicated code across 30 files in 5 areas:
- centered_rect: consolidate 5 identical TUI layout helpers into a
single pub fn in openshell-tui/src/ui/mod.rs
- server test helpers: replace ~100 inline Store::connect() calls
with local test_store() helpers; deduplicate test_server_state()
in grpc/service.rs to use the shared test_support version
- rogue PKI: extract 20-line rogue CA+client cert generation block
(duplicated in two integration tests) into generate_rogue_pki()
in tests/common/mod.rs
- provider tests: replace 8 identical 28-line test modules with a
single macro_rules! test_discovers_env_credential! invocation
- label constants: centralize openshell.ai/ container label keys
in openshell-core::driver_utils; update Docker and Kubernetes
drivers to import from there instead of redefining them locally
2026-05-21 10:50:49 -07:00
Eric Curtin
b332ffdf7d
refactor: deduplicate shared driver and provider constants ( #1474 )
...
Move default_sandbox_image() and SUPERVISOR_IMAGE_BINARY_PATH into
openshell-core so all compute drivers share a single authoritative
definition. Eliminates four identical copies of default_sandbox_image()
and two identical copies of SUPERVISOR_IMAGE_BINARY_PATH.
Implement ProviderPlugin for ProviderDiscoverySpec to remove the
repeated three-method delegation boilerplate from eight simple
provider modules. Each now declares only a SPEC constant; the blanket
impl handles id(), discover_existing(), and credential_env_vars().
2026-05-20 09:24:57 -07:00
John T. Myers
d255cdd9c9
feat(providers): add credential refresh foundation ( #1349 )
...
* feat(providers): add credential refresh foundation
* feat(providers): mint oauth refresh token credentials
* fix(providers): allow delegated refresh bootstrap
* fix(providers): guard refresh credential modes
* fix(providers): refine refresh lifecycle UX
* fix(cli): restore provider test gateway response import
* fix(server): clean auth endpoint test qualifications
* fix(providers): tighten refresh authorization and collisions
* chore(providers): trim bundled v2 profiles
* fix(providers): resolve refresh rebase fallout
* fix(cli): accept rfc3339 credential expiry
* test(providers): update inferred claude provider type
* test(providers): avoid removed outlook default profile
* test(providers): isolate attach limit fixtures
2026-05-19 07:42:10 -07:00
Eric Curtin
df5a8b943f
fix(providers): read opencode config file during credential discovery ( #1290 )
...
Supplement env-var discovery with API keys stored in the opencode
config file at $XDG_CONFIG_HOME/opencode/opencode.json. Keys under
provider.<name>.options.apiKey are surfaced as <NAME>_API_KEY env
vars; existing env vars take priority over file-sourced values.
2026-05-12 07:43:23 -07:00
Aaron Erickson 🦞 and John Myers
9ea94b645d
fix(sandbox): rewrite messaging credential placeholders ( #1286 )
...
* fix(sandbox): rewrite credential placeholders in websocket text frames
Signed-off-by: Aaron Erickson <aerickson@nvidia.com >
* fix(sandbox): harden websocket credential rewrite
Signed-off-by: Aaron Erickson <aerickson@nvidia.com >
* feat(sandbox): add websocket l7 inspection and compression
Signed-off-by: Aaron Erickson <aerickson@nvidia.com >
* fix(sandbox): harden websocket upgrade validation
Signed-off-by: Aaron Erickson <aerickson@nvidia.com >
* test(sandbox): cover route-selected websocket upgrades
Signed-off-by: Aaron Erickson <aerickson@nvidia.com >
* fix(sandbox): harden websocket negotiation parsing
Signed-off-by: Aaron Erickson <aerickson@nvidia.com >
* test(sandbox): add websocket conformance relay matrix
Signed-off-by: Aaron Erickson <aerickson@nvidia.com >
* test(e2e): add websocket conformance lane
Signed-off-by: Aaron Erickson <aerickson@nvidia.com >
* fix(policy): support websocket incremental rules
Signed-off-by: Aaron Erickson <aerickson@nvidia.com >
* feat(policy): enable websocket credential rewrite updates
Signed-off-by: Aaron Erickson <aerickson@nvidia.com >
* fix(cli): make websocket rewrite endpoint-local
Signed-off-by: Aaron Erickson <aerickson@nvidia.com >
* feat(sandbox): support graphql websocket policy
Signed-off-by: Aaron Erickson <aerickson@nvidia.com >
* fix(policy): allow private IPs for websocket endpoints
* feat(sandbox): rewrite REST credential placeholders
Signed-off-by: Aaron Erickson <aerickson@nvidia.com >
* refactor(sandbox): generalize credential aliases
Signed-off-by: Aaron Erickson <aerickson@nvidia.com >
* fix(sandbox): rewrite encoded form credentials
Signed-off-by: Aaron Erickson <aerickson@nvidia.com >
* fix(sandbox): close websocket policy and provider alias gaps
Signed-off-by: Aaron Erickson <aerickson@nvidia.com >
* fix(e2e): route websocket probe through host gateway
* fix(e2e): stabilize websocket probe handshake
* fix(e2e): exercise websocket probe through proxy
* ci: remove websocket conformance workflow
---------
Signed-off-by: Aaron Erickson <aerickson@nvidia.com >
Co-authored-by: John Myers <9696606+johntmyers@users.noreply.github.com >
2026-05-11 22:40:44 -07:00
John T. Myers
cdb1de59ba
feat(providers): add custom profile registry ( #1170 )
...
Add custom profile registry. Allow attaching custom profiles at sandbox start.
2026-05-07 09:41:25 -07:00
Drew Newberry
cc2114e267
docs(architecture): reset subsystem docs ( #1184 )
2026-05-07 08:59:02 -07:00
John T. Myers
043bde279a
feat(providers): add profile-backed policy composition ( #1037 )
...
Foundation for providers v2. Add provider profiles and provider profile composition with user policies.
2026-05-04 18:34:33 -07:00
Hector Flores
eff88b7011
feat(providers): add GitHub Copilot CLI agent provider ( #476 )
...
* feat(providers): add GitHub Copilot CLI agent provider
Source: https://docs.github.com/en/copilot/reference/copilot-allowlist-reference
2026-03-20 10:18:37 -07:00
Drew Newberry
fbd93a4632
refactor: rename navigator- crate prefix to openshell- ( #277 )
2026-03-13 02:02:18 -07:00