@merittdev/horus 0.24.0 → 0.24.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +87 -0
  2. package/package.json +16 -6
package/README.md ADDED
@@ -0,0 +1,87 @@
1
+ # Horus
2
+
3
+ [Horus](https://horus.sh), the incident-investigation CLI. From 0.24.0 this Rust implementation **is** `horus`: the npm package `@merittdev/horus`, the Homebrew formula `horus` and the GitHub release binaries all ship it.
4
+ It traces a production symptom through the code (via the source-intelligence backend) and your runtime systems:
5
+ - logs
6
+ - metrics
7
+ - queues
8
+ - databases
9
+ - error trackers
10
+ - Horus Cloud memory
11
+
12
+ It then ranks the likely causes and states its confidence plainly.
13
+
14
+ It is a command-for-command port of the TypeScript `horus` 0.23.0 ([Meritt-dev/horus](https://github.com/Meritt-dev/horus)): same commands, flags, help text, output and exit codes, now as a single native binary.
15
+
16
+ ## Install
17
+
18
+ ```sh
19
+ npm i -g @merittdev/horus # npm (macOS / Linux, arm64 / x64)
20
+ brew install meritt-dev/tap/horus # Homebrew
21
+ curl --proto '=https' --tlsv1.2 -LsSf \
22
+ https://github.com/Meritt-dev/horus-rust/releases/latest/download/horus-cli-installer.sh | sh
23
+ horus update --force # after the curl installer: installs the bundled backend
24
+ ```
25
+
26
+ The npm and Homebrew packages bundle the matching source-intelligence backend wheel. `horus init` installs it with [uv](https://docs.astral.sh/uv/).
27
+
28
+ ## Upgrading from the TypeScript horus (≤ 0.23.0)
29
+
30
+ - **npm:** `npm i -g @merittdev/horus@latest` (or `horus update`) replaces the TS build with this one. Node is still required for npm itself, not for Horus.
31
+ - **Homebrew:** `brew upgrade horus`. The formula no longer depends on `node`.
32
+ - **Config and secrets** in `~/.horus` and `.horus/config.json` are read as-is.
33
+ - **Local history.** The TS CLI kept investigations and memory in a PGlite store at `~/.horus/horus.db`. This build uses SQLite at `~/.horus/horus-rust.db`. Copy the history over once (needs `node`/`npx`; the TS store is only read):
34
+
35
+ ```sh
36
+ horus db migrate-from-ts
37
+ ```
38
+
39
+ Until you do, `horus` prints a one-line reminder while the new store is empty. Re-running the migration is safe.
40
+
41
+ ## Use
42
+
43
+ ```sh
44
+ cd your-service
45
+ horus init # index the repo, start the source host, write .horus/config.json
46
+ horus connect elasticsearch … # add runtime connectors (see `horus connect --help`)
47
+ horus doctor
48
+ horus investigate "checkout requests timing out since the last deploy"
49
+ ```
50
+
51
+ `horus --help` lists every command.
52
+
53
+ ## How it compares to the TypeScript CLI
54
+
55
+ We ran side-by-side benchmarks against 12 real repositories ([docs/BENCHMARK.md](docs/BENCHMARK.md)):
56
+ - **Startup:** 5 ms vs 158 ms cold start.
57
+ - **Memory:** 10 MB vs 153 MB idle; 140–175 MB vs about 1 GB for a full investigation.
58
+ - **Speed:** 2.5–11.8× faster per project.
59
+ - **Output parity:** 98–100% mean match.
60
+
61
+ The intended differences are listed in [DIVERGENCES.md](DIVERGENCES.md). The main ones:
62
+ - **Local database.** History lives in `~/.horus/horus-rust.db` (SQLite), not the TS CLI's PGlite `~/.horus/horus.db`; `horus db migrate-from-ts` copies it over. Horus Cloud memory syncs into both.
63
+ - **JS/TS config files.** `horus.config.{js,ts}` is loaded through an installed `node`. `.horus/config.json` needs nothing extra.
64
+ - **Cloud writes switch.** `HORUS_RUST_CLOUD_WRITE=0` keeps a run local: no Cloud writes and no telemetry.
65
+
66
+ ## Build from source
67
+
68
+ ```sh
69
+ HORUS_VERSION=0.24.2 cargo build --release -p horus-cli # → target/release/horus
70
+ ```
71
+
72
+ Cross-platform release builds are covered in [PORTING.md](PORTING.md), and cutting a release in [docs/RELEASE.md](docs/RELEASE.md).
73
+
74
+ The workspace mirrors the TS monorepo crate-for-package:
75
+ - `core`
76
+ - `connectors`
77
+ - `db`
78
+ - `stitcher`
79
+ - `engine`
80
+ - `ai`
81
+ - `knowledge`
82
+ - `eval`
83
+ - `cli`
84
+
85
+ ## License
86
+
87
+ MIT
package/package.json CHANGED
@@ -1,12 +1,22 @@
1
1
  {
2
2
  "name": "@merittdev/horus",
3
- "version": "0.24.0",
3
+ "version": "0.24.2",
4
4
  "description": "Local-first, source-aware production-incident investigation engine",
5
5
  "license": "MIT",
6
+ "keywords": [
7
+ "incident-investigation",
8
+ "observability",
9
+ "sre",
10
+ "debugging",
11
+ "cli"
12
+ ],
6
13
  "homepage": "https://horus.sh",
7
14
  "repository": {
8
15
  "type": "git",
9
- "url": "https://github.com/meritt-dev/horus"
16
+ "url": "https://github.com/Meritt-dev/horus-rust"
17
+ },
18
+ "bugs": {
19
+ "url": "https://github.com/Meritt-dev/horus-rust/issues"
10
20
  },
11
21
  "bin": {
12
22
  "horus": "bin/horus.js"
@@ -18,10 +28,10 @@
18
28
  "node": ">=18"
19
29
  },
20
30
  "optionalDependencies": {
21
- "@merittdev/horus-darwin-arm64": "0.24.0",
22
- "@merittdev/horus-darwin-x64": "0.24.0",
23
- "@merittdev/horus-linux-arm64": "0.24.0",
24
- "@merittdev/horus-linux-x64": "0.24.0"
31
+ "@merittdev/horus-darwin-arm64": "0.24.2",
32
+ "@merittdev/horus-darwin-x64": "0.24.2",
33
+ "@merittdev/horus-linux-arm64": "0.24.2",
34
+ "@merittdev/horus-linux-x64": "0.24.2"
25
35
  },
26
36
  "publishConfig": {
27
37
  "access": "public"