From 19d3758ef24e8a52fa8a6d7c4d023a3eaac02bfb Mon Sep 17 00:00:00 2001 From: Leonardo Araujo dos Santos Date: Thu, 5 Nov 2026 13:09:18 -0400 Subject: [PATCH] Add license, security policy, contributing guide, templates and changelog LICENSE carries the official Apache-2.0 text the crates and package manifests already declare, with a NOTICE. SECURITY.md routes reports to GitHub private vulnerability reporting with scope and response times. CONTRIBUTING.md covers setup, the CI gate and generated files, pull request rules, OpenSpec and the clean-room rule. Issue forms, a PR template and a CHANGELOG with the first release's contents. The README says no release exists yet and links the new files. --- .github/ISSUE_TEMPLATE/bug_report.yml | 68 +++++++ .github/ISSUE_TEMPLATE/config.yml | 8 + .github/ISSUE_TEMPLATE/feature_request.yml | 30 +++ .github/pull_request_template.md | 14 ++ CHANGELOG.md | 34 ++++ CONTRIBUTING.md | 85 +++++++++ LICENSE | 202 +++++++++++++++++++++ NOTICE | 6 + README.md | 8 +- SECURITY.md | 40 ++++ 10 files changed, 494 insertions(+), 1 deletion(-) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.yml create mode 100644 .github/pull_request_template.md create mode 100644 CHANGELOG.md create mode 100644 CONTRIBUTING.md create mode 100644 LICENSE create mode 100644 NOTICE create mode 100644 SECURITY.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 00000000..aaf33ecb --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,68 @@ +name: Bug report +description: Something does not work as documented +labels: ["bug"] +body: + - type: markdown + attributes: + value: | + Thanks for the report. For a security problem, don't file an issue: see SECURITY.md. + Remove API keys, tokens and private paths from anything you paste. + - type: textarea + id: what + attributes: + label: What happened + description: What you did, what you expected, and what happened instead. + validations: + required: true + - type: textarea + id: steps + attributes: + label: Steps to reproduce + placeholder: | + 1. cyber ... + 2. ... + validations: + required: true + - type: input + id: version + attributes: + label: Version + description: Output of `cyber --version`, or the commit you built. + validations: + required: true + - type: dropdown + id: os + attributes: + label: Operating system + options: + - macOS + - Linux + - Windows + - Other + validations: + required: true + - type: dropdown + id: surface + attributes: + label: Where + multiple: true + options: + - TUI + - cyber exec / CLI + - Web dashboard + - Server API / SDK + - Sandbox / permissions + - MCP / plugins / hooks / skills + - Install / upgrade + - Other + - type: input + id: model + attributes: + label: Provider and model + placeholder: openai/gpt-6.1-sol, anthropic/claude-..., a local model through Ollama, ... + - type: textarea + id: logs + attributes: + label: Logs and output + description: Relevant output, `cyber doctor`, or log lines (`cyber --print-logs ...`). + render: text diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..269532ba --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,8 @@ +blank_issues_enabled: true +contact_links: + - name: Report a security vulnerability + url: https://github.com/CyberdyneCorp/cybercode-cli/security/advisories/new + about: Report security problems privately, not as a public issue. + - name: Feature reference + url: https://github.com/CyberdyneCorp/cybercode-cli/blob/main/docs/features.md + about: What is available today and what remains. diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 00000000..f355adb6 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,30 @@ +name: Feature request +description: Suggest a new capability or an improvement +labels: ["enhancement"] +body: + - type: textarea + id: problem + attributes: + label: The problem + description: What are you trying to do, and what gets in the way today? + validations: + required: true + - type: textarea + id: proposal + attributes: + label: What you'd like + description: The behavior you have in mind. Commands, keys or config you'd expect are welcome. + validations: + required: true + - type: textarea + id: alternatives + attributes: + label: Alternatives and workarounds + description: What you use today, or how another tool handles it. + - type: checkboxes + id: checks + attributes: + label: Checks + options: + - label: I searched the existing issues, docs/features.md and ROADMAP.md. + required: true diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 00000000..ffe18de9 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,14 @@ +## Summary + + + +## How it was tested + + + +## Checklist + +- [ ] Bug fixes include a regression test that fails without the fix. +- [ ] Docs (`docs/`, `README.md`) and specs (`openspec/`) are updated for changed behavior. +- [ ] Generated files are current (OpenAPI, TypeScript SDK, `docs/cli.md`, `ROADMAP.md` inventory) when routes, CLI help or specs changed. +- [ ] `just lint` and the relevant tests pass locally. diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..2500ddd3 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,34 @@ +# Changelog + +All notable changes to Cyber Code are recorded here. The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and versions follow [Semantic Versioning](https://semver.org/spec/v2.0.0.html). Before 1.0, a minor version may change behavior or configuration; such changes are listed under **Changed**. + +[`docs/features.md`](docs/features.md) is the detailed reference for what each area does and what remains. + +## [Unreleased] + +The first release is in preparation. It will contain: + +### Added + +- **Agent core:** durable Sessions with steer and queue input, interrupt, retry with error classification, compaction and Context Epochs, on SQLite with backup, restore and retention. +- **Models:** OpenAI Responses, Anthropic Messages and OpenAI-compatible endpoints (including local servers such as Ollama), a models.dev catalog with an offline snapshot, usage and cost. Sign in with a ChatGPT Plus/Pro or GitHub Copilot subscription instead of an API key. +- **Reliability:** retry of interrupted streams before any tool runs, and unattended runs that wait for a subscription usage limit to reset. +- **Tools:** read, write, edit, `apply_patch`, bash (with background commands), glob, grep, web fetch and search, todo, question and skills, with output budgets. +- **Safety:** permission rules and modes (`default`, `plan`, `accept-edits`, `auto`, `dont-ask`, `bypass`), workspace trust, a sandbox on macOS and Linux (preview on Windows), secrets redacted from tool output, and framing of untrusted content against prompt injection. +- **Recovery:** Git snapshots, rewind of code, conversation or both, and staged undo/redo. +- **Surfaces:** a terminal UI, `cyber exec` for scripts and CI, a local web dashboard, an OpenAPI server with a TypeScript SDK, and an MCP server mode. +- **TUI:** command palette, themes, sidebar, file explorer, binary viewer and editor, rewind, Ctrl+R prompt history search, sound alerts, mouse support, accessibility and `NO_COLOR` modes. +- **Extensibility:** MCP (stdio and HTTP, OAuth, tool search, resources and prompts), skills and custom commands, hooks, plugins, output styles, memory, code intelligence through LSP, and import of Claude Code, Codex and OpenCode settings. +- **Orchestration:** subagents with worktree isolation, workflows with verified solve and integration queues, goals, session loops, and messaging between Sessions on one machine and between your own machines (direct peers). +- **Languages:** the TUI in English, Brazilian Portuguese, Spanish and French, with model replies in the chosen language (`language`, `/language`). +- **Install:** signed release archives for 8 targets, `install.sh`, verified `cyber upgrade` and `cyber uninstall`. + +### Experimental (off by default) + +- Agent teams, the self-hosted project collaboration hub, and native computer use on macOS. + +### Known limits + +- Windows is a preview: sandboxed shells cannot start yet ([#9](https://github.com/CyberdyneCorp/cybercode-cli/issues/9)). +- Package managers (Homebrew, npm, Scoop, WinGet, AUR, Nix) are not published yet, and binaries are not notarized for macOS or signed for Windows. +- The hosted Relay, remote control, session sharing and IDE clients are planned, not built. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..21c88ac3 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,85 @@ +# Contributing to Cyber Code + +Thanks for your interest. This guide covers how to build the project, what a pull request needs, and how changes are specified. + +By contributing, you agree that your contributions are licensed under the [Apache License 2.0](LICENSE), the project's license (section 5 of the license). + +## Before you start + +- **Bugs and small fixes:** open a pull request directly, or an issue first if you're not sure it's a bug. +- **New features and larger changes:** open an issue to discuss the idea first. Medium and large features, and any change touching security, permissions, authentication, billing or data models, need an [OpenSpec](#specs-with-openspec) change before the code. +- **Security problems:** don't open an issue. Follow [SECURITY.md](SECURITY.md). + +## Development setup + +You need: + +- **Rust 1.89+** (edition 2024). SQLite is bundled. +- **Linux:** `bubblewrap` for the sandbox (`sudo apt install bubblewrap`). +- **Node.js 22** for the web dashboard (`web/`), the TypeScript SDK (`sdk/typescript/`) and the OpenSpec CLI. +- **[just](https://github.com/casey/just)** (optional) for the task shortcuts below. +- **Python 3** for the spec and SDK scripts. + +```bash +git clone https://github.com/CyberdyneCorp/cybercode-cli +cd cybercode-cli +cargo build --locked -p cyber-cli +./target/debug/cyber --version +``` + +Run `just` to list the tasks. The common ones: + +| Task | Command | +|---|---| +| Format | `just fmt` | +| Lint (fmt check + clippy, warnings are errors) | `just lint` | +| Rust tests | `just test`, or `just test -p cyber-server` | +| Specs (OpenSpec validation, spec lint, roadmap inventory) | `just specs` | +| TypeScript SDK | `just sdk-test` | +| Everything CI checks | `just ci` | +| Linux tests in Docker | `just test-linux` | + +Some tests start the sandbox helper. Build it once with `cargo build -p cyber-sandbox --bins` before running the whole suite. CI uses [nextest](https://nexte.st/): `cargo nextest run --workspace --profile ci`. + +## What CI checks + +A pull request must pass: + +- `cargo fmt --check` and `cargo clippy --workspace --all-targets -- -D warnings`. Clippy also enforces a cognitive-complexity limit per function; split a function that exceeds it rather than silencing the lint. +- The Rust tests on macOS, Linux and Windows. Tests that need Unix (bash, PTYs) are gated with `#[cfg(unix)]`, together with any helpers and imports only they use. +- **Generated files are current:** + - `sdk/openapi.json`: run `UPDATE_OPENAPI=1 cargo test -p cyber-server openapi_document_is_current` after changing an HTTP route. + - The TypeScript SDK: `python3 scripts/generate_sdk.py`. + - `docs/cli.md`: `just docs-cli` after changing CLI flags or help text. + - The requirement inventory in `ROADMAP.md`: `python3 scripts/spec_inventory.py` after changing specs. +- `openspec validate --all --strict` and `python3 scripts/spec_lint.py`. +- The web dashboard and SDK builds and tests. + +## Pull requests + +- **One topic per pull request.** Separate refactors from behavior changes when you can. +- **Describe it.** The body says what changed, why, and how you tested it. The template has the sections. +- **Bug fixes come with a regression test** in the same pull request: one that fails before the fix and passes after. +- **Update the docs** (`docs/`, `README.md`) and the specs (`openspec/`) when behavior changes. +- **Keep code simple to read and extend.** Match the naming, comment density and idioms of the code around it. +- **Commit messages** are short and technical: what changed and why, in the imperative (`tui: search prompt history with Ctrl+R`). + +## Specs with OpenSpec + +Requirements live in [`openspec/specs/`](openspec/specs), one folder per capability, written as `SHALL` statements with scenarios. Changes are proposed in [`openspec/changes/`](openspec/changes): + +```bash +npx -y @fission-ai/openspec@1.13.2 new change add-my-feature +# write proposal.md, design.md (when needed), tasks.md and specs//spec.md deltas +npx -y @fission-ai/openspec@1.13.2 validate add-my-feature --strict +``` + +A spec is a product contract, not proof of implementation. [`docs/features.md`](docs/features.md) records what is actually available. + +## Clean-room rule + +Cyber Code is written independently. Do not copy code, prompts, grammars or documentation text from other coding agents or their products, including when their license would allow it. Studying their public behavior and documentation is fine; write our own implementation and words. + +## Code of conduct + +Be respectful and constructive. Harassment or personal attacks are not tolerated in issues, pull requests or any project space. Maintainers may remove content or block participants who don't follow this. diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..d6456956 --- /dev/null +++ b/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/NOTICE b/NOTICE new file mode 100644 index 00000000..1979beca --- /dev/null +++ b/NOTICE @@ -0,0 +1,6 @@ +Cyber Code +Copyright 2026 The Cyber Code Authors + +This product is licensed under the Apache License, Version 2.0 (see LICENSE). +Third-party dependencies keep their own licenses; see each crate's and npm +package's license metadata. diff --git a/README.md b/README.md index 1946a9dd..15c1c602 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ Examples below use the built binary. If you installed it on your PATH, use `cybe ## Install a release -Tagged releases publish signed archives for macOS, Linux (glibc and musl) and Windows (preview) to [GitHub Releases](https://github.com/CyberdyneCorp/cybercode-cli/releases). The install script checks each archive's SHA-256 (and its Sigstore signature when `cosign` is installed); `cyber upgrade` always verifies both before replacing the binary. +**No release has been published yet**, so the install script below does not work until the first one; build from source as in the [Quickstart](#quickstart) meanwhile. Tagged releases publish signed archives for macOS, Linux (glibc and musl) and Windows (preview) to [GitHub Releases](https://github.com/CyberdyneCorp/cybercode-cli/releases). The install script checks each archive's SHA-256 (and its Sigstore signature when `cosign` is installed); `cyber upgrade` always verifies both before replacing the binary. ```bash curl -fsSL https://github.com/CyberdyneCorp/cybercode-cli/releases/latest/download/install.sh | sh @@ -208,3 +208,9 @@ The TUI, web dashboard, CLI, SDK and MCP clients call one server. That server en | Check builds, tests or evaluations | [Development guide](docs/local-core-guide.md#build-and-development) ยท [Evaluation guide](eval/README.md) | Run `just` for available development tasks and `just ci` for local checks. Browse the [documentation index](docs/README.md) for the full guide set. + +## Contributing and license + +Contributions are welcome: see [CONTRIBUTING.md](CONTRIBUTING.md), and report security problems privately as described in [SECURITY.md](SECURITY.md). Notable changes are listed in the [CHANGELOG](CHANGELOG.md). + +Cyber Code is licensed under the [Apache License 2.0](LICENSE). diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 00000000..328eef9c --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,40 @@ +# Security policy + +Cyber Code runs model-proposed commands and edits on your machine, so we treat sandbox, permission and credential issues as the highest priority. + +## Reporting a vulnerability + +**Please do not open a public issue for a security problem.** + +Report it privately through GitHub: open the repository's **Security** tab and choose **Report a vulnerability**. This creates a private advisory that only maintainers can see. + +Include what you can of: + +- the affected version (`cyber --version`) or commit, and your OS; +- the configuration involved (mode, sandbox, `permissions`, trust state), with secrets removed; +- steps to reproduce, or a proof of concept; +- what an attacker gains: a file read, a command run, a credential, a prompt they control, and so on. + +We aim to acknowledge a report within **3 business days** and to send a first assessment within **10 business days**. We'll keep you updated until a fix ships, and credit you in the advisory unless you ask us not to. + +## Supported versions + +Cyber Code has not had its first release yet. Until it does, fixes land on `main` only. After the first release, security fixes go into the latest release and `main`. + +## In scope + +- Sandbox escapes, or commands that run with more access than the selected sandbox and mode allow. +- Bypasses of permission rules, protected paths, workspace trust or org policy (`policy`), including through hooks, plugins, MCP servers, skills or project configuration. +- Credential exposure: API keys, subscription logins, MCP tokens or secrets reaching the model, logs, exports, other Sessions or other machines. This includes failures of tool-output redaction. +- Untrusted content (web pages, repository files, MCP and tool output) causing actions the user did not approve, beyond the documented limits of the untrusted-content defense. +- Authentication or authorization flaws in the local server, the web dashboard, direct peers, `cyber attach` or the project collaboration hub. +- Supply-chain issues in our release artifacts, install script or upgrade verification. + +## Out of scope + +- Behavior the user explicitly allowed: `bypass` mode, `--dangerously-skip-permissions`, a full-access sandbox, or a rule that allows the action. +- The quality or truthfulness of model output, and prompt injection that only changes what the model says without causing an unapproved action. +- Vulnerabilities in third-party models, providers or MCP servers themselves. Please report those to their owners. +- Denial of service against your own local server. + +When in doubt, report it. We'd rather read a report that turns out to be out of scope than miss a real one.