You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 93b14c2
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: AGENTS.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,7 +7,7 @@ alwaysApply: false
7
7
# Extending rho
8
8
9
9
rho is an open-source code intelligence platform. It lives in the `graycode-eco`
10
-
workspace alongside the ecosystem repos that power it (`eyrie`,
10
+
workspace alongside the ecosystem repos that power it (`flux`,
11
11
`shrike`, `harrier`, `swift`, `kestrel`, `merlin`). This document describes how to extend
12
12
rho with custom tools, skills, hooks, and integrations.
13
13
@@ -192,8 +192,8 @@ Cross-repo severity and finding contracts now live in rho's `internal/contracts`
192
192
### Architecture note: provider ownership
193
193
194
194
Implement provider protocols, adapters, catalog metadata, credential mappings, and
195
-
provider contract tests in `../eyrie` (the eyrie engine's repo) first. Rho consumes providers only
196
-
through Eyrie's stable engine facade; Rho changes should be limited to host UX
195
+
provider contract tests in `../flux` (the flux engine's repo) first. Rho consumes providers only
196
+
through Flux's stable engine facade; Rho changes should be limited to host UX
197
197
and facade integration. Concentrate AI is a pay-as-you-go gateway implemented
198
198
with its native Responses API (`/v1/responses`) under the
199
199
`concentrate-payg` deployment.
@@ -245,7 +245,7 @@ This project is indexed by GitNexus as **rho** (97743 symbols, 322940 relationsh
245
245
246
246
### Workspace workflow (sibling repos)
247
247
248
-
rho depends on ecosystem repos (`eyrie`, etc.) as independent sibling repos in the `graycode-eco` workspace. Rho's `go.work` lists them as `../<repo>`, so local changes in any sibling are automatically picked up by rho. Each sibling is its own git repo, versioned and released independently.
248
+
rho depends on ecosystem repos (`flux`, etc.) as independent sibling repos in the `graycode-eco` workspace. Rho's `go.work` lists them as `../<repo>`, so local changes in any sibling are automatically picked up by rho. Each sibling is its own git repo, versioned and released independently.
249
249
250
250
1. Edit + test in `../<repo>` — run its tests, run `make test` in rho
251
251
2. Push from the sibling: `git push origin <branch>`
scripts, ecosystem manifest entries, docs, and internal identifiers were
16
+
renamed to match. User state paths move from `~/.../eyrie/provider.json`
17
+
to `~/.../flux/provider.json`.
18
+
10
19
### Security
11
20
-**Session lock TOCTOU eliminated**: `AcquireLock`'s stat → stale-if->5min → remove → O_EXCL dance could delete a live lock on misjudged staleness and let two instances open the same session. Mutual exclusion now uses an OS advisory lock (`gofrs/flock`, promoted to a direct dependency); a crashed holder's lock is reclaimed instantly because the kernel drops the flock at process death. The lock file keeps PID/timestamps purely as diagnostics.
12
21
-**Hardened atomic writes for state files**: global settings, checkpoint file contents and restores, handovers, and named checkpoints now go through `internal/safewrite` (same 0600 mode as before, plus fsync+rename atomicity and symlink refusal at the destination).
@@ -22,20 +31,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
22
31
23
32
### Removed
24
33
-**BREAKING — `rho credentials migrate` removed**: the subcommand, its man page entry, and the `MigrateEnvFileCredentials` wrappers are gone, and `rho path` no longer reports legacy `~/.rho/env` / `~/.rho/.env` files. Save keys through `/config`.
25
-
-**BREAKING — settings model/provider migration removed**: `LoadSettings` no longer moves `model`/`provider` from `settings.json` into Eyrie's `provider.json`, and `SetActiveSelection` is deleted. Stale `model`/`provider` values left in `settings.json` are now ignored on load (Eyrie's selection wins; `--settings` overrides still apply); select the model in `/config`.
34
+
-**BREAKING — settings model/provider migration removed**: `LoadSettings` no longer moves `model`/`provider` from `settings.json` into Flux's `provider.json`, and `SetActiveSelection` is deleted. Stale `model`/`provider` values left in `settings.json` are now ignored on load (Flux's selection wins; `--settings` overrides still apply); select the model in `/config`.
26
35
-**BREAKING — startup provider-secrets migration removed**: print/REPL/watch/TUI startup no longer calls `MigrateProviderSecrets`, and the method is dropped from the gateway `CatalogMaintenance` interface. `rho path` still fails when `provider.json` holds secrets; remove those fields manually.
27
36
-**BREAKING — `shared/types` guards removed**: `scripts/check-shared-types-imports.sh`, the `contracts-guard` make target, its lefthook and CI steps, and the matching testaudit checks are deleted because the package no longer exists. The ecosystem boundary guards still block `rho/internal` imports.
28
37
29
38
## [0.2.0] — 2026-07-13
30
39
31
40
### Changed
32
-
-**Rho/Eyrie production boundary completed**: Rho owns the product face,
33
-
sessions, tools, permissions, and public schemas while Eyrie v0.2.1 owns
41
+
-**Rho/Flux production boundary completed**: Rho owns the product face,
42
+
sessions, tools, permissions, and public schemas while Flux v0.2.1 owns
34
43
credentials, catalog resolution, provider transport, resilience, and usage
35
-
telemetry behind the stable `eyrie/engine` facade.
44
+
telemetry behind the stable `flux/engine` facade.
36
45
-**Provider routing and usage attribution hardened**: resolved route changes,
37
46
continuation segments, and terminal usage are propagated without duplicate
38
-
accounting, and production Eyrie calls use exactly one resilience layer.
47
+
accounting, and production Flux calls use exactly one resilience layer.
39
48
-**Daemon conversations are durable**: JSON and SSE chat requests create or
40
49
resume persisted sessions, expose stable session IDs, preserve metadata, and
41
50
distinguish invalid, missing, and corrupt state.
@@ -48,8 +57,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
48
57
-**`--permission-mode` CLI flag removed**; `--dangerously-skip-permissions` unchanged (now maps to the Autonomous tier). New `--dry-run` flag added as an unconditional kill switch (deny every tool call, regardless of tier or spec stage) — replaces `dontAsk`'s hard-lockout role.
49
58
-**Version re-baselined to `0.1.0`** across `cmd/rho/main.go`, `cmd/daemon.go`,
50
59
`flake.nix`, `.github/workflows/release.yml`, and the `update`/daemon test suites, aligning rho
51
-
with the rest of the GrayCodeAI ecosystem (`eyrie`, `shrike`, `harrier`, `kestrel`, `merlin`).
52
-
-**Architecture boundary hardening**: Rho now owns runtime request/response DTOs, transport config/provider seams, and review/verification product-boundary contracts, with `eyrie/client` usage restricted to internal adapters and guarded in CI.
60
+
with the rest of the GrayCodeAI ecosystem (`flux`, `shrike`, `harrier`, `kestrel`, `merlin`).
61
+
-**Architecture boundary hardening**: Rho now owns runtime request/response DTOs, transport config/provider seams, and review/verification product-boundary contracts, with `flux/client` usage restricted to internal adapters and guarded in CI.
53
62
-**`shared/types` removed**: Rho no longer ships the old shared type path, and local boundary checks now block any attempt to reintroduce it.
54
63
55
64
### Added
@@ -237,5 +246,5 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
237
246
### Added
238
247
- Project scaffold with cobra CLI and Bubbletea TUI
239
248
- Interactive chat REPL with textarea input, spinner, lipgloss styling
0 commit comments