Commit Graph
276 Commits
Author SHA1 Message Date
Kirit Thadaka c1628bb51d Updated brev launchable link in Readme 2026-03-15 20:12:55 -07:00
Piotr Mlocek c334222463 fix(ci): remove legacy wheel publishing machinery (#331) 2026-03-15 19:50:45 -07:00
Piotr Mlocek 3a328be853 feat(inference): verify endpoints before saving routes (#291)
Closes #273

Verify inference endpoints synchronously on the server during set/update, expose a --no-verify escape hatch in the CLI and Python helper, and return actionable failures when validation does not pass.
2026-03-15 19:36:23 -07:00
Drew Newberry 48fd9de521 docs: simplify quickstart install, reorder sections, and clean up sandbox docs (#330) 2026-03-15 18:11:59 -07:00
Piotr Mlocek 4b8eb4c4f4 chore(python): refine package metadata (#317) 2026-03-15 16:47:14 -07:00
Drew Newberry 53b7ce7112 fix(core): harden file permissions for user config directory (#328) 2026-03-15 15:55:41 -07:00
Drew Newberry 111d2d8d6e fix(ci): use BuildKit secrets instead of build-arg for GITHUB_TOKEN (#327) 2026-03-15 12:53:44 -07:00
Drew Newberry f6ae1da12d chore: remove remaining navigator and nemoclaw references (#279) 2026-03-15 12:44:08 -07:00
Drew Newberry ddca0df918 ci(canary): add two-step gateway start + sandbox create canary test (#325) 2026-03-15 11:20:07 -07:00
Miyoung Choi 7230d9cc3d docs: few more bits of docs improvement (#324)
* few more bits of docs improvement

* update docs update skill
2026-03-15 10:46:18 -07:00
Drew Newberry 9fdffc72b2 feat(bootstrap): add Docker preflight check before gateway startup (#321) 2026-03-15 09:45:19 -07:00
Piotr Mlocek aea37e6e61 ci(release): trigger GitLab wheel publish workflows (#323) 2026-03-15 09:12:35 -07:00
Drew Newberry 0a7ffe1669 ci(release): gate python wheels on e2e for tagged releases (#319) 2026-03-15 00:39:00 -07:00
John T. Myers b0026fbd0e fix(router): stop dropping client-sent default headers like anthropic-version (#320)
The strip_headers list in send_backend_request included default_headers
names (e.g. anthropic-version), which removed the client's value. The
already_sent check then saw the original input still contained the header
and skipped injecting the route default. Neither value reached upstream.

Remove default_headers names from strip_headers so client values pass
through. The existing already_sent guard still injects defaults only when
the client omits them.
2026-03-14 23:53:36 -07:00
Drew Newberry d34491a3f3 ci(release): use native GitHub release notes and add e2e gate (#318) 2026-03-14 22:44:12 -07:00
Drew Newberry 847bf4438c fix(cli): check port availability before starting SSH forward (#309) 2026-03-14 21:27:17 -07:00
Drew Newberry 8b9192f8f8 fix(ci): trigger release-tag workflow via workflow_dispatch from auto-tag (#315) 2026-03-14 20:12:48 -07:00
Piotr Mlocek 49d8aa42f3 test(e2e): run host alias checks from docker (#314) 2026-03-14 20:09:58 -07:00
Piotr Mlocek bda8b7481e chore(ci): upload Python wheels to release assets (#300) v0.0.4 2026-03-14 18:58:12 -07:00
Drew Newberry c58049cf2e ci: various CI improvements (#312) 2026-03-14 18:31:50 -07:00
Drew NewberryandPiotr Mlocek 83af7a245b feat(sandbox): inject host gateway hostAliases into sandbox pods (#306)
* feat(sandbox): inject host gateway hostAliases into sandbox pods

Sandbox pods running in the k3s cluster cannot resolve host.docker.internal
by default, preventing them from reaching services on the Docker host.

Detect the host gateway IP (default route) in the cluster entrypoint,
thread it through the Helm chart to the gateway server, and inject
hostAliases entries (host.docker.internal, host.openshell.internal)
into every sandbox pod spec. The injection is conditional -- when the
IP is empty (non-Docker deployments), no hostAliases are added.

---------

Co-authored-by: Piotr Mlocek <pmlocek@nvidia.com>
2026-03-14 16:54:03 -07:00
Miyoung Choi ed3c44550e docs: improve the docs more (#308)
* improve docs

* save
2026-03-14 16:34:37 -07:00
Miyoung Choi 9bd111718f remove docs switcher (#310) 2026-03-14 16:26:33 -07:00
John T. Myers 97bad8b7d0 chore: derive build version from git tags for all components (#305)
Compute version strings from git describe in openshell-core's build.rs
using the guess-next-dev scheme (e.g. 0.0.4-dev.6+g2bf9969). All binary
crates and the TUI splash screen now use the shared openshell_core::VERSION
constant instead of CARGO_PKG_VERSION.

In Docker/CI builds where .git is absent, falls back to CARGO_PKG_VERSION
which is already set correctly by the sed-patch pipeline. Also adds
OPENSHELL_CARGO_VERSION support to the cluster image and fast-deploy
supervisor builds for parity with the gateway.
2026-03-14 14:58:33 -07:00
Drew Newberry 2e0550a596 ci(release): add auto-tag workflow for patch version bumping (#307) 2026-03-14 14:44:33 -07:00
Piotr Mlocek 05eade959c feat(cli): add no-verify inference flag (#302) 2026-03-14 14:02:36 -07:00
Drew Newberry 4b23a7e242 feat(bootstrap): restore per-gateway Docker bridge networks (#303)
PR #281 removed the shared openshell-cluster Docker network in favor of
the default bridge. This restores custom bridge networking but makes each
gateway use its own isolated network named openshell-cluster-{name},
matching the existing container/volume naming convention.

Changes:
- Add network_name() to constants.rs for per-gateway network naming
- Add ensure_network() with retry/backoff and force_remove_network()
  parameterized by network name instead of a global constant
- Attach containers to their per-gateway network via network_mode
- Disconnect and remove the network during gateway destroy
- Wire ensure_network() into the deploy flow before ensure_volume()
- Update architecture docs to reflect per-gateway network isolation
2026-03-14 13:36:06 -07:00
Miyoung Choi 7746c77c35 chore: add docs contributing guides and skills (#301)
* add docs contributing guides and skills

* add section
2026-03-14 10:28:59 -07:00
Miyoung ChoiandKirit93 c420109a6a docs: add dedicated gateway docs, network policy tutorial, and license page (#294)
* Added gateway and tutorial

* add new content and polish, add license terms

* small fix

* tiny fix

* polish bit more

* change warning to important

* fix support matrix

* small fix

* add a note about example script

* fix link

* fix link

* improve

* fix links

* unclutter sandbax index more

* improve titles

* tiny style fix

* style guide on inferences, release notes link to gh

* polish

* nit

* switch version to 0.0.3

* incorporate feedback

---------

Co-authored-by: Kirit93 <kthadaka@nvidia.com>
2026-03-14 09:53:01 -07:00
Piotr Mlocek 26e540d8d6 fix(cli): show startup feedback for foreground forwards (#296) 2026-03-13 21:51:08 -07:00
Drew Newberry 1a35265d8e fix(canary): use curl instead of gh CLI for release download (#299) 2026-03-13 21:47:36 -07:00
John T. Myers 6ddb6aef83 chore: establish agent-first development ethos across project (#293)
* docs: enhance AGENTS.md as primary agent entrypoint

Signed-off-by: John Myers <9696606+johntmyers@users.noreply.github.com>

* chore: add opencode agent definitions for sub-agent workflows

Signed-off-by: John Myers <9696606+johntmyers@users.noreply.github.com>

* docs: overhaul CONTRIBUTING.md for agent-first workflow

Signed-off-by: John Myers <9696606+johntmyers@users.noreply.github.com>

* docs: reframe README.md with agent-first identity

Signed-off-by: John Myers <9696606+johntmyers@users.noreply.github.com>

* chore: add bug report and feature request issue templates

Signed-off-by: John Myers <9696606+johntmyers@users.noreply.github.com>

* chore: add issue template config with agent-first contact links

Signed-off-by: John Myers <9696606+johntmyers@users.noreply.github.com>

* chore: add pull request template

Signed-off-by: John Myers <9696606+johntmyers@users.noreply.github.com>

* chore: add CODEOWNERS

Signed-off-by: John Myers <9696606+johntmyers@users.noreply.github.com>

* chore: update .claude/ README to document skill symlink and consolidation

Signed-off-by: John Myers <9696606+johntmyers@users.noreply.github.com>

* chore: remove github-rest-api skill

Signed-off-by: John Myers <9696606+johntmyers@users.noreply.github.com>

* feat: add triage-issue skill for community issue assessment

Signed-off-by: John Myers <9696606+johntmyers@users.noreply.github.com>

* refactor: update create-github-issue skill for template conformance

Signed-off-by: John Myers <9696606+johntmyers@users.noreply.github.com>

* refactor: update create-github-pr skill for template conformance

Signed-off-by: John Myers <9696606+johntmyers@users.noreply.github.com>

* refactor: update build-from-issue skill for template conformance and triage awareness

Signed-off-by: John Myers <9696606+johntmyers@users.noreply.github.com>

* ci: add issue triage gate workflow

Signed-off-by: John Myers <9696606+johntmyers@users.noreply.github.com>

* feat: add sync-agent-infra skill to detect and fix infrastructure drift

Signed-off-by: John Myers <9696606+johntmyers@users.noreply.github.com>

---------

Signed-off-by: John Myers <9696606+johntmyers@users.noreply.github.com>
2026-03-13 21:13:24 -07:00
Drew Newberry 3bcbd93401 ci(release): add canary triggered after release workflow (#298) 2026-03-13 20:22:38 -07:00
Drew Newberry 1ba798f0fb ci(release): pin OPENSHELL_IMAGE_TAG to version for tagged releases (#297) v0.0.3 2026-03-13 19:28:35 -07:00
Drew Newberry 19c3230267 feat(ci): add automated release workflow with patch version bumping (#284) v0.0.1 2026-03-13 17:44:22 -07:00
Drew Newberry 2858bd662f fix(cli): use line-based stdin read for gateway recreate prompt (#292) 2026-03-13 15:51:09 -07:00
Piotr Mlocek 50ea7495c1 fix(sandbox): bypass proxy for localhost traffic (#290) 2026-03-13 15:30:08 -07:00
Drew Newberry 20c32716ad fix(bootstrap): detect missing sandbox supervisor binary during gateway health check (#281) 2026-03-13 15:07:50 -07:00
Miyoung Choi 468b02e74b docs: set the version to match the release version, add Adobe Launch tracking script, minor edits (#287)
* set version and minor edits

* adobe launch tracking script
2026-03-13 12:05:46 -07:00
Drew Newberry 6b9ac05bab fix(install): use gh CLI for release downloads instead of HTTP (#285) 2026-03-13 11:58:34 -07:00
Piotr Mlocek 72e0268028 feat(sandbox): add gpu sandbox scheduling support (#257)
* feat(sandbox): add gpu sandbox scheduling support

Allow sandbox creation to request GPU resources explicitly or infer them from GPU image names. This wires GPU intent through bootstrap, validates gateway support, and adds dedicated GPU E2E coverage for follow-up cluster testing.
2026-03-13 11:32:43 -07:00
Alexander Watson 158c925342 docs(examples): add sandbox policy quickstart walkthrough (#266)
* docs(examples): add sandbox policy quickstart walkthrough

Add an interactive getting-started example that demonstrates OpenShell's
network policy system end-to-end: default-deny, L7 read-only access,
and audit logging — all with a single YAML policy file.

- examples/sandbox-policy-quickstart/policy.yaml: policy with default
  static fields (filesystem, landlock, process) so it works out of the
  box with `openshell policy set`
- examples/sandbox-policy-quickstart/demo.sh: automated demo script
  using printf (portable) and openshell ssh-proxy for sandbox exec
- examples/sandbox-policy-quickstart/README.md: step-by-step manual
  walkthrough
- README.md: add "See network policy in action" section linking to the
  quickstart

Signed-off-by: Alexander Watson <zredlined@gmail.com>
Made-with: Cursor
Signed-off-by: Alexander Watson <zredlined@gmail.com>
Made-with: Cursor

* docs: soften default-deny wording to minimal outbound access

Sandbox defaults vary by type and community configs, so
"all outbound traffic is blocked" is too absolute.

Made-with: Cursor

* docs: use curl -sS so L4 deny errors are visible

curl -s suppresses stderr, hiding the 403 from the CONNECT
proxy. Adding -S ensures the error message is always shown.

Made-with: Cursor

---------

Signed-off-by: Alexander Watson <zredlined@gmail.com>
2026-03-13 11:32:32 -07:00
Kirit Thadaka 35037465c7 docs: Add brev link to readme (#282)
* Updated readme with brev link

* Updated readme with brev link

* Updated readme with brev link
2026-03-13 10:04:38 -07:00
John T. Myers 764fac79aa feat(tui): add log copy and visual selection mode (#276)
* feat(tui): add log copy and visual selection mode

Add clipboard support for the TUI log viewer using OSC 52 escape
sequences. Users can copy individual log lines (y), the visible
viewport (Y), or enter visual selection mode (v) to select a range
of lines with j/k and yank with y.

- Add clipboard module with OSC 52 base64 encoding
- Add format_log_line_plain() for plain-text log rendering
- Add visual selection mode with highlight styling and status bar
- Context-switch nav bar hints between normal and visual modes
- Add 7 unit tests for plain-text log formatting

Closes #274

* fix(tui): write OSC 52 to /dev/tty instead of stdout

ratatui owns stdout via the alternate screen buffer, so OSC 52
escape sequences written to stdout are swallowed by the backend.
Write directly to /dev/tty to bypass the buffer and reach the
terminal emulator.
2026-03-13 09:34:54 -07:00
Drew Newberry 06a62ddfaf ci: speed up E2E pipeline by running on arm64 runners and skipping redundant cluster rebuild (#278) 2026-03-13 02:06:47 -07:00
Drew Newberry fbd93a4632 refactor: rename navigator- crate prefix to openshell- (#277) 2026-03-13 02:02:18 -07:00
Drew Newberry 7b0a243304 ci: remove sandbox docker build from publish and e2e workflows (#275) 2026-03-13 00:56:07 -07:00
Miyoung Choi 7430c75438 remove manully generated cli reference (#272) 2026-03-12 22:08:17 -07:00
Drew Newberry 89d21d7852 refactor(sandbox): sandboxes are managed as separate community images (#267) 2026-03-12 22:06:52 -07:00
Piotr Mlocek b241237bde fix(sandbox): opt Node clients into proxy env support (#269) 2026-03-12 17:43:07 -07:00