harborloop 0.6.5 → 0.6.7

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.
package/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # `harborloop`
2
2
 
3
- Your team's knowledge, in your terminal. Recall in Claude Code, Codex and
4
- Cursor; capture on the way back out; and a `doctor` that can tell you it is not
5
- working.
3
+ Your team's knowledge, in your terminal. Recall in Claude Code, Codex, Cursor
4
+ and GitHub Copilot (the CLI and VS Code's agent mode); capture on the way back
5
+ out; and a `doctor` that can tell you it is not working.
6
6
 
7
7
  ```
8
8
  npx harborloop init
@@ -24,16 +24,16 @@ Then `/harbor:login` in Claude Code, or `$harbor:login` in Codex. See
24
24
 
25
25
  | | |
26
26
  |---|---|
27
- | `harbor init` | Sign in, install the hooks, bind this repo. Idempotent. Wires every agent it finds; `--cursor` / `--no-cursor` and `--codex` / `--no-codex` override detection. Asks before sending the repo's committed `CLAUDE.md` / `AGENTS.md` to your team's review queue, once per file; `--import-rules` sends without asking, `--no-import-rules` never sends, and `harbor update` never sends. `--headless` is for a cloud agent's setup script, see below. |
27
+ | `harbor init` | Sign in, install the hooks, turn Harbor on in this repo (in its Space; `--no-bind` leaves it off). Idempotent. Wires every agent it finds; `--cursor` / `--no-cursor`, `--codex` / `--no-codex` and `--copilot` / `--no-copilot` override detection. Asks before sending the repo's committed `CLAUDE.md` / `AGENTS.md` to your team's review queue, once per file; `--import-rules` sends without asking, `--no-import-rules` never sends, and `harbor update` never sends. `--headless` is for a cloud agent's setup script, see below. |
28
28
  | `harbor doctor` | Is it actually working? `--offline`, `--json`, `--days N` |
29
29
  | `harbor status` | This repo, from local files only. No network. |
30
- | `harbor bind [project]` | Tie this repo to a project. |
30
+ | `harbor bind [Space]` | Turn Harbor on in this repo, in a Space: the only one, or it asks. On a bound repo, `harbor bind --project <Space>` moves it (an owner, admin or curator can). Harbor stays off in every repo you do not bind. |
31
31
  | `harbor workspaces` | Which workspaces you can reach, and the one this machine uses. `--json` |
32
32
  | `harbor daily` | What the hooks run once a day in the background: renew the sign-in, send each connected repo's facts, report this machine's harborloop version, check for a newer release. |
33
33
  | `harbor off` | Pause this repo. `--capture` keeps recall. `--global` for the machine. |
34
34
  | `harbor on` | Resume. `--global` clears a machine-wide pause. |
35
35
  | `harbor login` | Re-authenticate. `--no-browser` to paste a code instead. `--workspace <id>` switches workspace **without** the browser. |
36
- | `harbor logout` | Forget this machine's credential. Leaves the config alone. |
36
+ | `harbor logout` | Sign this machine out: removes `~/.harbor/auth.json` and the MCP entry (and its bearer) from each agent's config. The hooks stay installed and do nothing until you sign in again. |
37
37
  | `harbor uninstall` | Take Harbor off this machine: the hooks, the MCP entries and `~/.harbor`. |
38
38
 
39
39
  There is deliberately no `ask`, no `learnings`, no `sources`. Your agent reaches
@@ -54,7 +54,7 @@ Create a workspace agent key in Harbor's settings, then give the environment
54
54
  this setup script:
55
55
 
56
56
  ```
57
- HARBOR_AGENT_KEY=<your key> npx -y harborloop@0.5.14 init --headless
57
+ HARBOR_AGENT_KEY=<your key> npx -y harborloop@latest init --headless
58
58
  ```
59
59
 
60
60
  The key goes on the line itself. Claude Code on the web does not pass the
@@ -70,7 +70,7 @@ If the setup script runs inside a repo that has its own package named
70
70
  `harborloop`, `npx` picks that one up instead. Install it globally there:
71
71
 
72
72
  ```
73
- npm i -g harborloop@0.5.14 && HARBOR_AGENT_KEY=<your key> harbor init --headless
73
+ npm i -g harborloop@latest && HARBOR_AGENT_KEY=<your key> harbor init --headless
74
74
  ```
75
75
 
76
76
  `init --headless` wires Claude Code with the key: the MCP entry, the hooks, the
@@ -105,7 +105,7 @@ In the Codex environment's settings, add the key as a secret named
105
105
  then use this setup script:
106
106
 
107
107
  ```
108
- npx -y harborloop@0.5.14 init --headless --codex --origin https://github.com/<owner>/<repo>
108
+ npx -y harborloop@latest init --headless --codex --origin https://github.com/<owner>/<repo>
109
109
  ```
110
110
 
111
111
  - **Agent internet access** must be On, with `app.gethrbr.com` and
@@ -120,7 +120,7 @@ npx -y harborloop@0.5.14 init --headless --codex --origin https://github.com/<ow
120
120
  Harbor stays off in a repo it cannot name. An origin the clone already has
121
121
  is never replaced.
122
122
 
123
- Cursor cloud agents are not supported yet.
123
+ Cursor and Copilot cloud agents are not supported yet.
124
124
 
125
125
  ## Why a CLI at all
126
126
 
@@ -168,9 +168,9 @@ tells you how much of what gets injected is actually used.
168
168
  fails with the fix on the next line. A health check that only ever prints green
169
169
  is not a health check.
170
170
 
171
- **A partial install is one of the things it says no to.** `init` registers five
172
- events; a hand-edited `settings.json` that kept one of them gets
173
- `Hooks ⚠ 1 of 5 events registered — capture, the end-of-session report and tool
171
+ **A partial install is one of the things it says no to.** `init` registers seven
172
+ events in Claude Code; a hand-edited `settings.json` that kept one of them gets
173
+ `Hooks ⚠ 1 of 7 events registered — capture, the end-of-session report and tool
174
174
  context are not wired`, not a tick over a count. Counting what is there answers
175
175
  a narrower question than the one you are asking it.
176
176
 
@@ -274,12 +274,14 @@ one never re-mints another:
274
274
 
275
275
  ```
276
276
  ~/.claude.json `mcpServers.harbor` — the MCP entry and its bearer
277
- ~/.claude/settings.json five hook events (NOT the MCP entry: Claude Code
277
+ ~/.claude/settings.json seven hook events (NOT the MCP entry: Claude Code
278
278
  reads `mcpServers` from `~/.claude.json` only)
279
- ~/.codex/config.toml the MCP server + four events (Codex has no SessionEnd)
280
- ~/.codex/hooks.json the registrations, plus the trust stamps Codex will not run without
279
+ ~/.codex/config.toml the MCP server, plus the trust stamps Codex will not run hooks without
280
+ ~/.codex/hooks.json six hook events (Codex has no SessionEnd)
281
281
  ~/.cursor/mcp.json `mcpServers.harbor`, Cursor's `{url, headers}` shape
282
- ~/.cursor/hooks.json five events, in Cursor's own event and tool names
282
+ ~/.cursor/hooks.json seven events, in Cursor's own event and tool names
283
+ ~/.copilot/mcp-config.json `mcpServers.harbor`, in the shape `copilot mcp add` writes
284
+ ~/.copilot/hooks/harbor.json seven events, in a file of Harbor's own (`$COPILOT_HOME` if set)
283
285
  ```
284
286
 
285
287
  Nothing else. Until 0.6.0 a background job wrote the team's skills, documents and
@@ -294,6 +296,14 @@ no field to inject context into, so a Cursor session gets the bundle when it
294
296
  opens and on every edit, and no per-turn delta. `doctor` says so on its healthy
295
297
  line rather than implying parity.
296
298
 
299
+ ⚠️ **Copilot shows no ⚓ line.** Its hooks have no channel to the person, so
300
+ the rules reach the agent on every prompt and after each file it touches, and
301
+ nothing tells you so in the terminal. A rule set to ask first refuses with a code
302
+ instead, as on Codex and Cursor. VS Code's agent mode runs the same hook file
303
+ (unless `"chat.useHooks": false`, which `doctor` warns about), but it starts the
304
+ harbor MCP server only when you do: once, from **MCP: List Servers**, **harbor**,
305
+ **Start Server**.
306
+
297
307
  Every one of these files is yours, not ours: each write is a merge that leaves
298
308
  your other MCP servers, your other hooks, and every key we do not recognise
299
309
  exactly as it found them, under a cross-process lock so the desktop app and this
@@ -1,12 +1,12 @@
1
1
  {
2
- "version": "0.6.5",
2
+ "version": "0.6.7",
3
3
  "algorithm": "sha256",
4
4
  "binaries": {
5
- "@gethrbr/harborloop-darwin-arm64": "63fccfde73e252ab6ec31e6f6691733935df54474cfcd773a4a77d53e29c676b",
6
- "@gethrbr/harborloop-darwin-x64": "99c54d57186a9da93ac1204a6f3437c80834057558330ce9b6523817f550b016",
7
- "@gethrbr/harborloop-linux-x64": "877d7e990e109f0e5920ee8515e6cc7fc8f190a757de9b6f11ac819257780e14",
8
- "@gethrbr/harborloop-linux-arm64": "a31ab35692c5866e0eb504340d56cf856497e990d4b50967bf2a950fab842870",
9
- "@gethrbr/harborloop-linux-x64-musl": "352604e117eec98450c488344ba106c275ecfcf28ce5469b2378ddba0c8fd966",
10
- "@gethrbr/harborloop-win32-x64": "044e0a9475ae83c396b58f6578b4b7b95cab22dcf95ac5cc774f9dc76e661232"
5
+ "@gethrbr/harborloop-darwin-arm64": "d4b9a96a2a9235fa466010ae3478e1895bc0c2cc73745fb5572558a501a574af",
6
+ "@gethrbr/harborloop-darwin-x64": "ffbaa7051b071783b89d07708b9a1871580370acdcd6aa5a8332a80a1abdbcf5",
7
+ "@gethrbr/harborloop-linux-x64": "e236ab122c1ff8979bb0bad6f2a4337d6adc36b2ebba22e211e1f0feaa94355c",
8
+ "@gethrbr/harborloop-linux-arm64": "924e71a56441e342b057d1ab4dbf327e7e1674fce6357e2ce0f8b0da2f5ced2f",
9
+ "@gethrbr/harborloop-linux-x64-musl": "80ad4ecc46c746fa7e11ec5831960ad81621f4b3b3cd80ab3b08784f736c29de",
10
+ "@gethrbr/harborloop-win32-x64": "be87510309c8705959b1d49bdb43032aa4a9ab0e46bf76ece8d2399b02d86a39"
11
11
  }
12
12
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "harborloop",
3
- "version": "0.6.5",
4
- "description": "Install and health-check the harbor knowledge loop in your terminal. Recall in Claude Code, Codex and Cursor; a doctor that can say no.",
3
+ "version": "0.6.7",
4
+ "description": "Install and health-check the harbor knowledge loop in your terminal. Recall in Claude Code, Codex, Cursor and GitHub Copilot CLI; a doctor that can say no.",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "homepage": "https://gethrbr.com",
@@ -26,12 +26,12 @@
26
26
  "agents.md"
27
27
  ],
28
28
  "optionalDependencies": {
29
- "@gethrbr/harborloop-darwin-arm64": "0.6.5",
30
- "@gethrbr/harborloop-darwin-x64": "0.6.5",
31
- "@gethrbr/harborloop-linux-x64": "0.6.5",
32
- "@gethrbr/harborloop-linux-arm64": "0.6.5",
33
- "@gethrbr/harborloop-linux-x64-musl": "0.6.5",
34
- "@gethrbr/harborloop-win32-x64": "0.6.5"
29
+ "@gethrbr/harborloop-darwin-arm64": "0.6.7",
30
+ "@gethrbr/harborloop-darwin-x64": "0.6.7",
31
+ "@gethrbr/harborloop-linux-x64": "0.6.7",
32
+ "@gethrbr/harborloop-linux-arm64": "0.6.7",
33
+ "@gethrbr/harborloop-linux-x64-musl": "0.6.7",
34
+ "@gethrbr/harborloop-win32-x64": "0.6.7"
35
35
  },
36
36
  "publishConfig": {
37
37
  "//": "A scoped package defaults to RESTRICTED, and `npm publish` on a scope with no paid plan fails outright rather than publishing privately. This is the whole difference between a wedge anybody can `npx` and a 402.",