From 4d8eea526e3774aefbc35dfd7036b9e091dbdf8b Mon Sep 17 00:00:00 2001 From: opencode Date: Sat, 19 Sep 2026 02:43:05 +0530 Subject: [PATCH 1/2] fix: normalize to 0.0.1 and close ecosystem gaps - ecosystem.yaml add rover/across as tooling - docs/ECOSYSTEM-WIRING mark stale + point to canonical yaml - docs/README index for docs/ - install.sh add RHO_VERSION/--version pin + win-arm64 handled - Makefile build-all add windows-arm64 --- Makefile | 1 + docs/ECOSYSTEM-WIRING.md | 13 +++++-------- docs/README.md | 10 ++++++++++ ecosystem.yaml | 14 ++++++++++++++ install.sh | 24 ++++++++++++++++++++---- 5 files changed, 50 insertions(+), 12 deletions(-) create mode 100644 docs/README.md diff --git a/Makefile b/Makefile index 2fd95598..e2550b11 100644 --- a/Makefile +++ b/Makefile @@ -253,6 +253,7 @@ build-all: ## Build for all platforms (darwin/linux/windows × amd64/arm64) GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -trimpath -ldflags="$(LDFLAGS)" -o bin/$(NAME)-linux-amd64 $(MAIN_PKG) GOOS=linux GOARCH=arm64 CGO_ENABLED=0 go build -trimpath -ldflags="$(LDFLAGS)" -o bin/$(NAME)-linux-arm64 $(MAIN_PKG) GOOS=windows GOARCH=amd64 CGO_ENABLED=0 go build -trimpath -ldflags="$(LDFLAGS)" -o bin/$(NAME)-windows-amd64.exe $(MAIN_PKG) + GOOS=windows GOARCH=arm64 CGO_ENABLED=0 go build -trimpath -ldflags="$(LDFLAGS)" -o bin/$(NAME)-windows-arm64.exe $(MAIN_PKG) build-static: ## Build fully static binaries for Linux (musl-compatible) GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -trimpath -ldflags="$(LDFLAGS)" -o bin/$(NAME)-linux-amd64-static $(MAIN_PKG) diff --git a/docs/ECOSYSTEM-WIRING.md b/docs/ECOSYSTEM-WIRING.md index c5f796a6..5fc05cc9 100644 --- a/docs/ECOSYSTEM-WIRING.md +++ b/docs/ECOSYSTEM-WIRING.md @@ -1,13 +1,10 @@ # GrayCode ecosystem wiring -> NOTE (2026-09-04): the `eagle` repository has been removed; its contracts -> were vendored into rho's `internal/contracts` and `ecosystem.yaml` -> no longer lists it. Diagrams below predate the removal. - -This document is the implementation contract for the 14 repositories in the -GrayCodeAI ecosystem. `ecosystem.yaml` is the canonical machine-readable -inventory; generated workspaces, boundary checks, release parity, and Owl's -repository catalog derive from it. +> **STALE (2026-09-18):** Diagrams below predate `eagle` removal (2026-09-04) and list 14 repos / 6 engines. Canonical inventory is `ecosystem.yaml` (now 6 repos: `rho`, `flux`, `graycode-skills`, `graycode-platform`, `rover`, `across`). Use that for workspace/boundary checks. See `PLAN.md` at eco root for remediation. + +> NOTE (2026-09-04): `eagle` contracts vendored into `rho/internal/contracts`. + +This document is the historical implementation contract. `ecosystem.yaml` is the canonical machine-readable inventory. ## Current state before this change diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 00000000..a266fc11 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,10 @@ +# Rho Documentation + +Index for `rho/docs/`. `ecosystem.yaml` is the canonical repo inventory; `ECOSYSTEM-WIRING.md` is historical. + +- **Architecture** `architecture/README.md` + `architecture.md` +- **User Guide** `user-guide/` (skills, slash commands, permissions) +- **Ecosystem** `ECOSYSTEM-WIRING.md` (pre-2026-09-04), `ECOSYSTEM-ROADMAP.md`, `ecosystem-message-flow.md`, `ECOSYSTEM-CONFIG.md`, `platform-capabilities.json` (legacy) +- **Security** `SECURITY-DEVELOPER.md`, `DAEMON-PORT-THREAT-MODEL.md` +- **Ops** `BENCHMARKS.md`, `OTEL-CONVENTIONS.md`, `versioning.md` +- **Plans** `plans/` + `ecosystem-remediation-plan.md` diff --git a/ecosystem.yaml b/ecosystem.yaml index b08fc0b2..d43bab24 100644 --- a/ecosystem.yaml +++ b/ecosystem.yaml @@ -41,3 +41,17 @@ repositories: kind: platform language: typescript workspace: false + + - directory: rover + github_repo: rover + product_name: Rover + kind: tooling + language: go + workspace: false + + - directory: across + github_repo: across + product_name: Across + kind: tooling + language: go + workspace: false diff --git a/install.sh b/install.sh index cc1d01aa..cc919480 100755 --- a/install.sh +++ b/install.sh @@ -13,6 +13,18 @@ fi REPO="GrayCodeAI/rho" BINARY="rho" +# Version pin: --version or RHO_VERSION env (e.g. 0.1.0 or v0.1.0) +VERSION_PIN="${RHO_VERSION:-}" +if [ "$1" = "--version" ]; then + VERSION_PIN="$2" + shift 2 +elif [ "$3" = "--version" ]; then + # handle --prefix --version order + VERSION_PIN="$4" + set -- "$1" "$2" +fi +VERSION_PIN=$(printf '%s' "$VERSION_PIN" | sed 's/^v//') + OS=$(uname -s | tr '[:upper:]' '[:lower:]') ARCH=$(uname -m) case "$ARCH" in @@ -31,10 +43,14 @@ case "$OS" in ;; esac -LATEST=$(curl -fsSL --proto '=https' --tlsv1.2 "https://api.github.com/repos/$REPO/releases/latest" | grep '"tag_name"' | sed -E 's/.*"v([^"]+)".*/\1/') -if [ -z "$LATEST" ]; then - echo "Error: could not determine latest version" - exit 1 +if [ -n "$VERSION_PIN" ]; then + LATEST="$VERSION_PIN" +else + LATEST=$(curl -fsSL --proto '=https' --tlsv1.2 "https://api.github.com/repos/$REPO/releases/latest" | grep '"tag_name"' | sed -E 's/.*"v([^"]+)".*/\1/') + if [ -z "$LATEST" ]; then + echo "Error: could not determine latest version" + exit 1 + fi fi ARCHIVE_NAME="${BINARY}_${LATEST}_${OS}_${ARCH}.${ARCHIVE_EXT}" From 1bb91acdbfad9962dad9f19cb64f42db9a64049e Mon Sep 17 00:00:00 2001 From: Lakshman Patel Date: Mon, 21 Sep 2026 05:22:51 +0530 Subject: [PATCH 2/2] fix: complete rho ecosystem metadata --- docs/ECOSYSTEM-WIRING.md | 1 - ecosystem.yaml | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/ECOSYSTEM-WIRING.md b/docs/ECOSYSTEM-WIRING.md index 5fc05cc9..a4b8894d 100644 --- a/docs/ECOSYSTEM-WIRING.md +++ b/docs/ECOSYSTEM-WIRING.md @@ -1,7 +1,6 @@ # GrayCode ecosystem wiring > **STALE (2026-09-18):** Diagrams below predate `eagle` removal (2026-09-04) and list 14 repos / 6 engines. Canonical inventory is `ecosystem.yaml` (now 6 repos: `rho`, `flux`, `graycode-skills`, `graycode-platform`, `rover`, `across`). Use that for workspace/boundary checks. See `PLAN.md` at eco root for remediation. - > NOTE (2026-09-04): `eagle` contracts vendored into `rho/internal/contracts`. This document is the historical implementation contract. `ecosystem.yaml` is the canonical machine-readable inventory. diff --git a/ecosystem.yaml b/ecosystem.yaml index d43bab24..41a5778a 100644 --- a/ecosystem.yaml +++ b/ecosystem.yaml @@ -47,6 +47,7 @@ repositories: product_name: Rover kind: tooling language: go + module: github.com/GrayCodeAI/rover workspace: false - directory: across @@ -54,4 +55,5 @@ repositories: product_name: Across kind: tooling language: go + module: github.com/graycodeai/across workspace: false