Commit Graph
153 Commits
Author SHA1 Message Date
claude[bot]andClaude b5ba31c965 fix(audit): drop Dependabot alerts whose manifest is not in the checkout (#16358)
<!-- claude-slack-attribution -->
_Requested by **Nikolas Garza** · [Slack
thread](https://onyx-company.slack.com/archives/C0C5SMAM4TT/p1792538621965719?thread_ts=1792538621.965719&cid=C0C5SMAM4TT)_

## Description

Before: The CVE audit reported every open Dependabot alert, even when
the alert named a manifest that is not in the checkout. For example,
issue #16345 cited alert #1369 for `loadtest/uv.lock`, which does not
exist on main. The certifi and pillow fixes were already in `uv.lock`,
but the finding came back on each run.

After: The audit drops a Dependabot alert when its manifest path is not
a file in the checkout. An alert with no manifest path stays, and so
does every alert if the repo root cannot be found.

What it does: stops stale Dependabot alerts from becoming audit findings
and tracking issues.

How: `auditDependabot` calls the new `dropMissingManifests` after
parsing the alerts. It resolves each manifest path against the git root.
Table-driven tests cover the filter, and one test runs `auditDependabot`
with a fake `gh`. Existing test fixtures now create the `pyproject.toml`
their alert cites.

## Not done

- Installed-version check: the tool has no lockfile reader that returns
the installed version of an arbitrary package. The OSV scan only reports
vulnerable packages. I did not add a new parser. An alert for a manifest
that exists, with a fix already installed, still shows until Dependabot
closes it.
- "Also failed on this run" replies: `PlanAnnouncement` only knows the
advisory-to-thread map. It has no record of earlier replies, and the
existing tests expect the reply on each failing run. Skipping it needs
new persistent state, so I made no change.

## How Has This Been Tested?

`go build ./... && go vet ./... && go test ./...` in `tools/ods` all
pass. `pre-commit` is not installed in this environment, so it did not
run.

Linear: none. No Linear link in this PR.

## Additional Options

- [ ] [Optional] Please cherry-pick this PR to the latest release
version.

---
_Generated by [Claude
Code](https://claude.ai/code/session_01E2K27DFf4J3iAGXYpe4xtR)_

<!-- This is an auto-generated description by cubic. -->
---
## Summary by cubic
Stops the CVE audit from turning stale Dependabot alerts into findings
and tracking issues when the alert's manifest no longer exists in the
checkout.

- The audit drops alerts whose manifest path is not a file in the git
root; alerts without a manifest path, and all alerts when the repo root
cannot be found, are kept.
- No installed-version check was added: an alert for a manifest that
exists still shows even when the fix is already installed.

<sup>Written for commit e9f75ffadc.
Summary will update on new commits.</sup>

<a
href="https://cubic.dev/pr/onyx-dot-app/onyx/pull/16358?utm_source=github"
target="_blank" rel="noopener noreferrer"
data-no-image-dialog="true"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source
media="(prefers-color-scheme: light)"
srcset="https://www.cubic.dev/buttons/review-in-cubic-light.svg"><img
alt="View guided diff"
src="https://www.cubic.dev/buttons/review-in-cubic-light.svg"></picture></a>
<a
href="https://www.cubic.dev/action/auto-fix/pr/onyx-dot-app/onyx/16358?returnTo=https%3A%2F%2Fgithub.com%2Fonyx-dot-app%2Fonyx%2Fpull%2F16358&source=description"
target="_blank" rel="noopener noreferrer"
data-no-image-dialog="true"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://www.cubic.dev/buttons/turn-on-auto-fix-dark.svg"><source
media="(prefers-color-scheme: light)"
srcset="https://www.cubic.dev/buttons/turn-on-auto-fix-light.svg"><img
alt="Turn on auto-fix"
src="https://www.cubic.dev/buttons/turn-on-auto-fix-light.svg"></picture></a>

<!-- End of auto-generated description by cubic. -->



<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

<!-- coderabbit-ai-generated:v1 -->

## Summary by CodeRabbit

* **Bug Fixes**
* Removed dependency audit findings associated with manifest files that
are missing from the checked-out repository.
* Continued retaining findings without manifest paths and findings when
the repository location cannot be determined.

* **Tests**
* Added coverage for missing, nested, directory-based, and manifest-free
dependency findings.
  * Updated audit scenarios to include Python project manifest fixtures.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: Claude <noreply@anthropic.com>
2026-10-21 00:49:27 +00:00
devin-ai-integration[bot]androshan 242e1ee622 chore(ods): remove unused Registry.Lease wrapper (#16289)
## Description

This PR removes `Registry.Lease` from
`tools/ods/internal/devstack/ports.go`. It was a one-line wrapper that
called `LeaseFor(root, "", requests)`. Its last production caller,
`leasePorts` in `lifecycle.go`, switched to `LeaseFor` in #16285. After
that change, only tests called `Lease`.

The tests now call `LeaseFor(root, "", ...)` directly, so their behavior
does not change. The files are `ports_test.go`, `launch_test.go`,
`ports_live_test.go`, `service_runner_test.go` and
`cmd/stack_ls_test.go`.

#16263 removed `NewConfigFromEnv` for the same reason.

## How Has This Been Tested?

- `gofmt`, `go vet ./...` and `go vet -tags live,integration ./...`
pass.
- `go test ./internal/devstack/` passes.
- In `go test ./cmd/`, only `TestRunCI_failures` fails. #16285 reports
that this test also fails on a clean main in this environment.
- Pre-commit (`golangci-lint`) passes.

## Additional Options

- [ ] [Optional] Please cherry-pick this PR to the latest release
version.

Link to Devin session:
https://app.devin.ai/sessions/a3cb68152476440ab90f20b4ed1d644b
Open in Devin Desktop:
https://app.devin.ai/desktop/session/a3cb68152476440ab90f20b4ed1d644b?variant=devin

<!-- This is an auto-generated description by cubic. -->
---
## Summary by cubic
Removes the unused `Registry.Lease` wrapper from
`tools/ods/internal/devstack/ports.go`. Its last production caller
switched to `LeaseFor` in #16285, and the affected tests now call
`LeaseFor(root, "", ...)` directly with no behavior change.

<sup>Written for commit f7bf65ef71.
Summary will update on new commits.</sup>

<a
href="https://cubic.dev/pr/onyx-dot-app/onyx/pull/16289?utm_source=github"
target="_blank" rel="noopener noreferrer"
data-no-image-dialog="true"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source
media="(prefers-color-scheme: light)"
srcset="https://www.cubic.dev/buttons/review-in-cubic-light.svg"><img
alt="View guided diff"
src="https://www.cubic.dev/buttons/review-in-cubic-light.svg"></picture></a>
<a
href="https://www.cubic.dev/action/auto-fix/pr/onyx-dot-app/onyx/16289?returnTo=https%3A%2F%2Fgithub.com%2Fonyx-dot-app%2Fonyx%2Fpull%2F16289&source=description"
target="_blank" rel="noopener noreferrer"
data-no-image-dialog="true"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://www.cubic.dev/buttons/turn-on-auto-fix-dark.svg"><source
media="(prefers-color-scheme: light)"
srcset="https://www.cubic.dev/buttons/turn-on-auto-fix-light.svg"><img
alt="Turn on auto-fix"
src="https://www.cubic.dev/buttons/turn-on-auto-fix-light.svg"></picture></a>

<!-- End of auto-generated description by cubic. -->

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Refactor**
* Consolidated port lease handling through the state-aware lease
interface.
* Removed the legacy lease method; existing lease scenarios continue to
support reclamation, replacement, release, and port selection.

* **Tests**
* Updated lease-related coverage to use the current interface while
preserving validation of stale leases, durable leases, foreign
listeners, and busy preferred ports.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: roshan <38771624+rohoswagger@users.noreply.github.com>
2026-10-20 01:38:49 +00:00
1720ffc203 feat(ods): list dev stacks machine-wide, stop orphans by project, and release unused port leases (#16285)
## Description

Adds `ods stack ls` to list every Onyx dev stack on the machine from any
directory, and lets `stop`/`down --project NAME` act on a stack whose
worktree is gone. The PR also releases port leases when a stack stops
owning them.

**`ods stack ls [--json] [--all] [--orphaned]`**
(`internal/devstack/inventory.go`, `cmd/stack_ls.go`)
- It merges four sources, keyed by Compose project: `docker ps -a` +
`docker inspect` (labels, state, health), `projects/*/owner.json`, every
reachable `state.json` (owner state dirs, plus
`<git-common-dir>/{ods-stack,ods-stack-shared,ods-stack-frontend,worktrees/*/ods-stack,worktrees/*/ods-stack-frontend}`
from owner, lease, Docker and state roots), and `Registry.Leases()`. It
does not call `devstack.Open`, and it takes no locks.
- An Onyx Compose project is one with `relational_db` + `cache`
services, or one that a state or owner record claims.
- Statuses: `active` (an app process is alive, checked with
`groupIsOurs`, so a reused PID does not count), `app-stopped` (infra
runs, phase `stopped`), `infra-only` (infra runs, no app process: a
Compose-only project or dead processes), `stopped`, `orphaned`, and
`stale-lease` (`--all` only).
- Orphan rules: the Compose working dir is gone and no state claims the
project; a state's root is gone; or the root exists but is no longer a
git worktree (state rows, or Docker rows with an owner record whose
state is gone). A row counts as orphaned only when something is left to
clean up: processes, containers, leases or an owner record.
- A missing or corrupt state degrades its row (`errors`). When Docker is
down, `ls` prints a warning and shows rows from saved state only. Exit
codes: 0; 3 when `--orphaned` finds an orphan; 1 when no source can be
read.

**`down`/`stop --project NAME` and `prune`**
(`internal/devstack/project_down.go`)
- The command resolves the stack through `owner.json` → `state_dir`,
then any state that claims the project, then Docker labels. It runs from
any directory.
- It takes the state lock (only if the state dir still exists, so git
metadata is never recreated) and the project lock. It stops recorded
groups with `stopServices`/`stopRecords` and runs `docker compose -p
NAME down` from a neutral dir. Volumes are kept.
- After a successful down it releases the stack's leases and removes
`owner.json` for an orphan.
- It refuses a stack with a live service under an existing git worktree
unless you pass `--force`. If `--project` already matches the current
checkout's stack, the existing checkout path runs.
- `ods stack prune` runs this for every orphaned row after a
confirmation (`--yes` skips it). `--volumes` has its own confirmation,
and `--yes` does not skip it.

**Port lease fixes** (`ports.go`, `lifecycle.go`, `legacy.go`)
- `Stack.Stop` releases app leases (everything except `*_HOST_PORT`).
`Stack.Down` releases app leases after `stopServices`, and every lease
after Compose down. New `Registry.ReleaseNames`.
- Shared adoption (`releaseLegacyLeases`, runs after the legacy guard
and before `leasePorts`): each stopped legacy candidate without live
process groups loses all its leases, or only its app leases while its
containers run.
- Reclaim: `Lease.StateDir` is now recorded (`LeaseFor`). Another
owner's lease is reclaimable when its state is `stopped` or missing,
none of its recorded groups is alive, and, for `*_HOST_PORT` only, its
Compose project has no running container. That last check is lazy, so
app-port leasing stays fast. Leases without `StateDir` are reclaimable
only for shared/frontend keys, which are their own state dirs.
- Drift down: `choosePort` moves a lease to the lowest free port from
`Preferred` when the service is not running. I added
`PortRequest.Running` because `Fixed` alone is not set for a running
service that does not hold its port yet, and moving such a service
changed `web dev`'s full-stack owner
(`TestWebRuntimeUsesTheFullStackWebOwner` caught this).

Docs: `ods stack` help, `tools/ods/README.md`,
`tools/ods/integration/README.md`, and the onyx-dev-stack skill (a new
"Find and stop old stacks" step, and the updated port bullet).

Known limit: `git worktree remove` deletes
`<common>/worktrees/<name>/ods-stack`, so the recorded PIDs are lost.
`down --project` still removes the containers, leases and owner record,
but it cannot find app processes that outlived that removal.

**Discovery-first CLI.** Bare `ods stack` prints a short intro, then
groups its subcommands with the same `AddGroup` pattern as the root
command: Find stacks (`status`, `ls`, `logs`, `plan`), Run this
worktree's stack (`up`, `start`, `restart`, `stop`, `down`), and Clean
up (`prune`). Each `ls` row carries `next`, the exact command that stops
it, and the text output logs it with `log.Info`. Empty results and
refusals name the command to run.

Example on the VM (an isolated stack, then its worktree deleted with `rm
-rf`):
```
$ ods stack ls
PROJECT           STATUS       APP  INFRA  WEB  AGE  ROOT
demo-wt-fd863404  app-stopped  -    7/7    -    1m   ~/demo-wt
$ rm -rf ~/demo-wt && ods stack ls --orphaned   # exit 3
PROJECT           STATUS    APP  INFRA  WEB  AGE  ROOT
demo-wt-fd863404  orphaned  -    7/7    -    1m   ~/demo-wt (missing)
level=info msg="To stop demo-wt-fd863404 (orphaned), run: ods stack down --project demo-wt-fd863404"
```
After `stack stop`, only the `*_HOST_PORT` leases remained. After `down
--project`, no containers or leases were left.

## How Has This Been Tested?

- Unit tests for the inventory merge (fake containers, owners, states,
leases, liveness): live, app-stopped, infra-only, Compose-only, orphan
with a missing root, a removed worktree whose directory remains, a stale
lease, Docker unavailable, unreadable sources, and sort order.
- Real-process tests for `DownProject`/`StopProject`: an orphan in a
deleted linked worktree is stopped, its leases are released and its
owner record is removed; a live worktree is refused without `--force`.
- Lease tests: reclaim of a stopped owner, live process group skipped,
non-stopped owner skipped, `*_HOST_PORT` with and without running
containers, drift down vs. running, `ReleaseNames`, stop/down releases,
adoption with and without a live legacy group, and the frontend handoff
releasing preview leases.
- Coverage gates: `cmd` is at 90.6% against a 90.4% floor, and
`internal/docker` at 99.3% against 99.2%.
- `go test ./internal/... ./cmd/` passes, except `TestRunCI_failures`,
which also fails on a clean main in this environment. golangci-lint
passes.
- New integration test `TestStackLiveOrphanedWorktree` (`-tags
integration`) passed on the VM (246 s). It starts an isolated stack in a
disposable worktree, deletes the worktree, asserts that `ls --orphaned`
lists the stack with exit 3, then that `down --project` stops its
processes, removes its containers and releases its leases.

## Additional Options

- [ ] [Optional] Please cherry-pick this PR to the latest release
version.


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Added `ods stack ls` to view active, stopped, orphaned, and
stale-lease stacks with service, health, port, age, and location
details.
* Added JSON output, filtering, orphan detection, and project-based
shutdown support.
* Added `ods stack prune` to safely clean up orphaned stacks, with
optional volume removal.
* **Bug Fixes**
  * Improved port lease reclamation and reassignment for stopped stacks.
* `stop` now releases application ports while preserving infrastructure
ports; `down` releases all ports.
* **Documentation**
  * Expanded lifecycle, recovery, listing, and cleanup guidance.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: roshan <rohod04@gmail.com>
Co-authored-by: roshan <38771624+rohoswagger@users.noreply.github.com>
2026-10-20 00:22:08 +00:00
roshanandDevin AI 4a23402d70 chore(ods): remove unused IsPortExposed and NewConfigFromEnv helpers (#16263)
## Description

This PR removes two ODS helpers. Their last production callers were
removed in #16246.

- `docker.IsPortExposed` (`tools/ods/internal/docker/docker.go`) and its
test `TestIsPortExposed`.
- `postgres.NewConfigFromEnv`
(`tools/ods/internal/postgres/postgres.go`). Callers now use
`NewConfigFromEnvironment(env)`. The two `NewConfigFromEnv` tests now
call `NewConfigFromEnvironment`, so the tests for the default values and
for reading the environment stay.

## How Has This Been Tested?

- `go vet` and `go test ./internal/docker ./internal/postgres`
- `GOOS=windows go build ./...`
- Pre-commit hooks (`golangci-lint`) on the changed files.

## Additional Options

- [ ] [Optional] Please cherry-pick this PR to the latest release
version.

Link to Devin session:
https://app.devin.ai/sessions/88808bbde64f4f1ebe92163a49564dbe
Open in Devin Desktop:
https://app.devin.ai/desktop/session/88808bbde64f4f1ebe92163a49564dbe?variant=devin

<!-- This is an auto-generated description by cubic. -->
---
## Summary by cubic
Removes two unused ODS helpers now that their last production callers
were deleted in #16246. Deletes `docker.IsPortExposed` and its test, and
drops `postgres.NewConfigFromEnv`; the tests for default values and
environment reading now call `NewConfigFromEnvironment` directly.

**Migration**
- Code still calling `postgres.NewConfigFromEnv()` should use
`NewConfigFromEnvironment(os.Environ())`.

<sup>Written for commit 0a2c413df7.
Summary will update on new commits.</sup>

<a
href="https://cubic.dev/pr/onyx-dot-app/onyx/pull/16263?utm_source=github"
target="_blank" rel="noopener noreferrer"
data-no-image-dialog="true"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source
media="(prefers-color-scheme: light)"
srcset="https://www.cubic.dev/buttons/review-in-cubic-light.svg"><img
alt="View guided diff"
src="https://www.cubic.dev/buttons/review-in-cubic-light.svg"></picture></a>
<a
href="https://www.cubic.dev/action/auto-fix/pr/onyx-dot-app/onyx/16263?returnTo=https%3A%2F%2Fgithub.com%2Fonyx-dot-app%2Fonyx%2Fpull%2F16263&source=description"
target="_blank" rel="noopener noreferrer"
data-no-image-dialog="true"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://www.cubic.dev/buttons/turn-on-auto-fix-dark.svg"><source
media="(prefers-color-scheme: light)"
srcset="https://www.cubic.dev/buttons/turn-on-auto-fix-light.svg"><img
alt="Turn on auto-fix"
src="https://www.cubic.dev/buttons/turn-on-auto-fix-light.svg"></picture></a>

<!-- End of auto-generated description by cubic. -->



<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Refactor**
* Streamlined internal Docker and PostgreSQL utilities. PostgreSQL
configuration checks now use explicitly supplied environment values
rather than reading process settings directly.
  * No end-user-facing behavior changes are included in this update.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-19 20:34:29 +00:00
roshan a8033533d1 refactor(ods): unify launchers and protect shared infrastructure (#16246)
## Description

Make ODS reuse shared development infrastructure by default, with
`--isolated` for separate datasets.

- Use the same service specifications and launchers for `stack`, `web
dev`, and `backend` commands. Remove the duplicate `stack
--frontend-only` option.
- Enforce project ownership across checkouts and resolve database
commands to the actual managed database.
- Stop services before pending migrations, preserve them when already at
head, and reject manual migrations beneath managed services.
- Harden startup cancellation, shutdown grace, descendant cleanup,
terminal input, and frontend API validation. Preserve Windows foreground
commands.
- Consolidate environment helpers, protect symlinked environment files,
propagate restore errors, and update help and documentation.

This PR contains only ODS and its development-stack skill. It does not
include the plugins implementation.

## How Has This Been Tested?

- Targeted command and regression tests using fake tools and disposable
Git repositories.
- Race tests for runtime targeting, ownership, migration ordering,
process cleanup, and terminal input.
- `go vet ./...`, pre-commit checks, native builds, and Windows
cross-builds.
- The full Go suite was run. Its remaining failures are the existing
macOS devcontainer SSH-mount fixture expectations in
`TestDevcontainerCommands` and `TestRunDevRebuild`.

No real database migrations, restores, or development-stack restarts
ran. Native Windows execution remains untested.

## Additional Options

- [ ] [Optional] Please cherry-pick this PR to the latest release
version.
- [x] [Optional] Override Linear Check

<!-- This is an auto-generated description by cubic. -->
---
## Summary by cubic
ODS now shares development infrastructure across worktrees by default,
with `--isolated` for separate datasets. `stack`, `web dev`, and
`backend` use the same service specs and launchers, and the duplicate
`stack --frontend-only` option is removed.

- Direct launches run the same dependency-prepare step as stack startup,
so `backend` and `web dev` work with fresh or stale Python environments.
- A stopped preview discards its former project state before retargeting
to another API owner.
- Enforces project ownership across checkouts and resolves database
commands to the managed database. New tests reject conflicting targets
before any mutation.
- Stops services before pending migrations, preserves them when already
at head, and rejects manual migrations beneath managed services.
Migration probe failures fail closed.
- Hardens startup cancellation, shutdown grace, and descendant cleanup;
ODS keeps the terminal foreground group so Ctrl-C still honors shutdown
timeouts, and tmux pane identifiers no longer change service identity.
- Database passwords reach tools through the child environment only,
never in process arguments; Windows foreground commands are preserved.
- Consolidates environment helpers, protects symlinked env files,
propagates restore errors, and refreshes help and documentation. Test
commits exercise the new migration-target and preview-launch paths.

<sup>Written for commit 14500cb051.
Summary will update on new commits.</sup>

<a
href="https://cubic.dev/pr/onyx-dot-app/onyx/pull/16246?utm_source=github"
target="_blank" rel="noopener noreferrer"
data-no-image-dialog="true"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source
media="(prefers-color-scheme: light)"
srcset="https://www.cubic.dev/buttons/review-in-cubic-light.svg"><img
alt="View guided diff"
src="https://www.cubic.dev/buttons/review-in-cubic-light.svg"></picture></a>
<a
href="https://www.cubic.dev/action/auto-fix/pr/onyx-dot-app/onyx/16246?returnTo=https%3A%2F%2Fgithub.com%2Fonyx-dot-app%2Fonyx%2Fpull%2F16246&source=description"
target="_blank" rel="noopener noreferrer"
data-no-image-dialog="true"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://www.cubic.dev/buttons/turn-on-auto-fix-dark.svg"><source
media="(prefers-color-scheme: light)"
srcset="https://www.cubic.dev/buttons/turn-on-auto-fix-light.svg"><img
alt="Turn on auto-fix"
src="https://www.cubic.dev/buttons/turn-on-auto-fix-light.svg"></picture></a>

<!-- End of auto-generated description by cubic. -->

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Added the global `--isolated` option for separate development stacks;
shared infrastructure is the default, with clearer project ownership and
status information.
* Added `ods web dev` previews that can use a healthy managed API on
macOS and Linux, plus foreground startup on Windows.
* Expanded command guidance for development workflows, database
targeting, and dump formats.
* **Bug Fixes**
* Pending migrations now stop managed application services first;
healthy services remain running when no migrations are needed.
* Database operations verify project ownership and target selection
before making changes. Restore errors now fail the command, SQL restores
stop on errors, and temporary files are cleaned up after failures.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-10-19 20:07:02 +00:00
roshan 57f07ef1e6 chore(ci): remove the Linear PR check (#16244) 2026-10-19 18:17:47 +00:00
onyx-cherry-pick[bot]androshan 2e1466cf59 chore(deps): update python base image digests (#15816)
Co-authored-by: onyx-cherry-pick[bot] <285052878+onyx-cherry-pick[bot]@users.noreply.github.com>
Co-authored-by: roshan <38771624+rohoswagger@users.noreply.github.com>
2026-10-19 17:18:56 +00:00
devin-ai-integration[bot]androshan ab2afeec41 fix(helm): exempt release-branch merge queue runs from the chart release check (#16220)
Co-authored-by: roshan <rohod04@gmail.com>
2026-10-17 20:38:08 +00:00
roshanandClaude f4340d8129 chore(ods): install skills from onyx-infra agent-context (#16130)
Co-authored-by: Claude <noreply@anthropic.com>
2026-10-16 20:01:16 +00:00
devin-ai-integration[bot]andnik 89cdb0cf98 chore(ods): drop the unused audit.SyncAlerts wrapper (#16089)
Co-authored-by: nik <nik@onyx.app>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-15 18:44:50 +00:00
devin-ai-integration[bot]andnik a0897a2205 feat(cve-alerts): one Slack post per run, thread repeats by CVE id, track CVEs per image (#16077)
Co-authored-by: nik <nik@onyx.app>
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-15 18:31:24 +00:00
roshan d79a8881aa feat(ods): add stack command for per-worktree dev stacks (#16036) 2026-10-14 23:05:38 +00:00
Wenxi faaa183e3a chore(helm): require chart version and release note updates (#16035) 2026-10-14 21:32:29 +00:00
Justin Tahara bcb5ff9fc9 fix(devtools): stop local tools writing through symlinks and running fork hooks (#15992) 2026-10-14 17:29:12 +00:00
roshanandDevin AI 8ce6fab7c5 feat(deployment): run the MCP server by default in docker compose (#15963)
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-10-13 19:55:58 +00:00
Nikolas Garza 2489736c9f fix(ci): pin release lines to main's base image digests and post one failure notice per failure (#15889) 2026-10-12 22:58:04 +00:00
Wenxi d89fd563ca feat(i18n): require translation updates for English copy changes (#15794) 2026-10-09 23:34:20 +00:00
Nikolas Garza 54155760fd chore: drop the two EE env vars from deploys, ods, CI and tests (#15645) 2026-10-07 21:29:31 +00:00
onyx-cherry-pick[bot] e6c4f8ac34 chore(deps): update python base image digests (#15531)
Co-authored-by: onyx-cherry-pick[bot] <285052878+onyx-cherry-pick[bot]@users.noreply.github.com>
2026-10-07 16:28:32 +00:00
Nikolas Garza a278fccfba feat(ci): audit the sandbox image's OS layer in the deploy gate and nightly (#15515) 2026-10-06 01:24:12 +00:00
Nikolas Garza 1a2699a78c fix(ci): backport every affected image family and keep distro releases apart (#15504) 2026-10-02 23:31:13 +00:00
Nikolas Garza 066b47e502 feat(ods): audit gate command to run before cutting a tag (#15446) 2026-10-02 19:15:31 +00:00
Nikolas Garza 19659c8648 feat(ci): attach fixed versions to findings and thread repeat alerts (#15435) 2026-10-02 19:15:29 +00:00
Nikolas Garza 3fe68e62ef feat(ci): alert on deploy-blocking findings in a Slack thread (#15345) 2026-10-01 19:40:42 +00:00
Nikolas Garza c0049da2ef feat(ci): run CVE alerts on the release branch a failed tag came from (#15328) 2026-10-01 19:40:41 +00:00
Yuhong SunandClaude Opus 5.5 8ced9bc01f chore: remove Vespa and consolidate the document index interface (#15336)
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 19:22:34 +00:00
Nikolas Garza 9e79169ba9 feat(ods): dev stack runs the object store only, with a one-shot MinIO migrate (#15318) 2026-09-30 21:48:35 +00:00
Nikolas Garza 474ca50bb4 feat(ci): open an issue, fix PR, and Slack alert per vulnerable package (#15308) 2026-09-30 21:09:00 +00:00
Nikolas Garza cfe73b7a72 feat(file-store): write to both stores and fall back to MinIO during the move (#15249) 2026-09-30 20:02:16 +00:00
Nikolas Garza 6df60263f7 feat(deployment): add the SeaweedFS object-store service beside MinIO (#15248) 2026-09-30 20:02:15 +00:00
onyx-cherry-pick[bot] 6688b36c94 chore(deps): update python base image digests (#14697)
Co-authored-by: onyx-cherry-pick[bot] <285052878+onyx-cherry-pick[bot]@users.noreply.github.com>
2026-09-29 22:47:14 +00:00
Justin Tahara 07eef23f83 fix(ods): pin fork CI promotion to the confirmed commit (#14865) 2026-09-23 23:19:27 +00:00
WenxiandClaude Fable 5 29ce74c6b1 fix(loadtest): make search scenarios actually exercise retrieval (#14983)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-09-23 20:48:44 +00:00
Evan LohnandClaude Fable 5 b57f0ddbbe feat(ods): install-skill updates the checkout by default (#14971)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-09-22 17:37:31 +00:00
Evan LohnandClaude Fable 5 42e742dbc1 feat(ods): install onyx-llm-context for Codex via a compiled local file (#14946)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-09-21 22:07:10 +00:00
Evan LohnandClaude Fable 5 237bfd9122 feat(ods): install onyx-llm-context skills as Cursor rules (#14944)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-09-21 22:07:09 +00:00
Evan LohnandCursor 711a0479f1 feat: for edits option in ods run-ci (#13363)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-19 05:44:44 +00:00
Jamison LahmanandClaude Opus 5 af0bbd4eca refactor(ods): order struct fields for tight memory layout (#14874)
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-09-17 22:36:17 +00:00
Jamison LahmanandClaude Opus 5 7defe20ada test(ods): raise ods test coverage to 90% (#14771)
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-09-16 19:45:06 +00:00
Jamison LahmanandClaude Opus 5 4190ba91c4 feat(ods): add ods release cli and ods release ods (#14724)
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 00:25:14 +00:00
Jamison LahmanandClaude Opus 5 16247eec9d build: pin the wheel build environment and upgrade Go to 1.27.1 (#14719)
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 22:05:52 +00:00
Jamison LahmanandClaude Fable 5.1 0ee35bf1d2 feat(ods): report Go coverage against the base commit's snapshot (#14563)
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-14 21:14:04 +00:00
Jamison LahmanandClaude Opus 5 46ca5cffe0 refactor(ods): replace the jmelahman/tag dependency and fold tag classification into ods release classify (#14704)
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 19:47:34 +00:00
2375a25a75 feat(ods): add ods type-coverage to gate TypeScript type coverage against a baseline (#14628)
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Co-authored-by: onyx-cherry-pick[bot] <285052878+onyx-cherry-pick[bot]@users.noreply.github.com>
2026-09-11 17:28:28 +00:00
Jamison LahmanandClaude Opus 5 092df32f7d perf(celery): cut worker boot memory by ~28% with lazy imports (#14632)
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-09-10 23:58:56 +00:00
dependabot[bot] 63a61f91b4 chore(deps): bump google.golang.org/grpc from 1.82.1 to 1.83.2 in /tools/ods (#14578)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-09 00:42:52 +00:00
onyx-cherry-pick[bot] 34779a0c5f chore(deps): update python base image digests (#14584)
Co-authored-by: onyx-cherry-pick[bot] <285052878+onyx-cherry-pick[bot]@users.noreply.github.com>
2026-09-08 22:45:10 +00:00
Jamison LahmanandClaude Opus 5 9be7edfb33 feat(ods): add update-base-digests to replace Dependabot's dead Docker coverage (#14235)
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-09-08 20:59:05 +00:00
Jamison LahmanandClaude Fable 5.1 a4d42e35c4 chore(compose): replace docker-compose.multitenant-dev.yml with an overlay (#14559)
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-08 20:16:38 +00:00
Jamison LahmanandClaude Fable 5.1 40c003f9f6 feat(ods): add ods coverage to gate Go coverage against a baseline (#14492)
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-04 23:04:02 +00:00