@creatornader/agent-bridge 0.6.5 → 0.7.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.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,34 @@ All notable changes to agent-bridge are documented in this file.
4
4
 
5
5
  The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and the project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [0.7.2] - 2026-07-30
8
+
9
+ ### Fixed
10
+
11
+ - Use a dedicated release verification credential. The release gate no longer shares
12
+ the manual production-proof sender credential.
13
+
14
+ ## [0.7.1] - 2026-07-30
15
+
16
+ ### Fixed
17
+
18
+ - Keep a long-lived edge client available after a remote protocol mismatch. The
19
+ affected publication remains blocked, while background synchronization re-probes
20
+ the gateway without replaying that publication.
21
+ - Deploy and verify the exact gateway revision before npm publication. A release now
22
+ stops when the production gateway and package release do not match.
23
+
24
+ ## [0.7.0] - 2026-07-29
25
+
26
+ ### Added
27
+
28
+ - Let exact managed Codex and Claude Code registrations move from stdio to a
29
+ profile-local MCP Streamable HTTP endpoint. Claude Desktop can record an exact
30
+ stdio proxy command and arguments for the same topology. The update keeps the
31
+ existing private backend and credentials, rejects non-loopback or credential-shaped
32
+ URLs, upgrades v1 managed metadata to a versioned target contract, and retains the
33
+ existing journal, resume, and rollback guarantees.
34
+
7
35
  ## [0.6.5] - 2026-07-27
8
36
 
9
37
  ### Fixed
package/README.md CHANGED
@@ -120,8 +120,11 @@ The authenticated check compares the running package and Git revision with the
120
120
  intended release. It also requires protocol 2.1, request authority, and row isolation.
121
121
  It prints no credential. A missing or different revision stops the rollout.
122
122
 
123
- The manual `gateway production proof` workflow tests an existing gateway after this
124
- deployment gate passes. GitHub must run it from `main` in the protected
123
+ Release tags run this deployment gate before npm publication. The release environment
124
+ must define `AGENT_BRIDGE_FLY_APP` and `AGENT_BRIDGE_GATEWAY_ORIGIN`, and keep
125
+ `FLY_API_TOKEN` plus `RELEASE_VERIFY_TOKEN` as protected secrets. The manual `gateway
126
+ production proof` workflow tests the deployed gateway after this gate passes. GitHub
127
+ must run it from `main` in the protected
125
128
  `agent-bridge-production-proof` environment. Separate sender and receiver jobs prove
126
129
  offline outbox replay, exact idempotency, claim, and acknowledgment. The workflow then
127
130
  restarts the single Fly machine, requires a later successful machine start event, and
@@ -530,6 +533,15 @@ agent-bridge clients repair codex --identity codex --instance <stable-key>
530
533
  agent-bridge clients repair codex --identity codex --instance <stable-key> --apply
531
534
  agent-bridge clients update codex --identity codex --instance <stable-key> \
532
535
  --command agent-bridge-mcp --apply
536
+ agent-bridge clients update codex --identity codex --instance <stable-key> \
537
+ --mcp-url http://127.0.0.1:8794/mcp --apply
538
+ agent-bridge clients update claude-code --identity claude-code --instance <stable-key> \
539
+ --mcp-url http://127.0.0.1:8793/mcp --apply
540
+ agent-bridge clients update claude-desktop --identity claude-desktop --instance <stable-key> \
541
+ --mcp-url http://127.0.0.1:8791/mcp \
542
+ --proxy-command /absolute/path/to/node \
543
+ --proxy-args-json '["/absolute/path/to/stdio-http-proxy.js","--transport","stdio-http-proxy","--endpoint","http://127.0.0.1:8791/mcp"]' \
544
+ --apply
533
545
  agent-bridge clients repair codex --identity codex --instance <stable-key> \
534
546
  --apply --resume <operation-uuid>
535
547
  agent-bridge clients uninstall codex --identity codex --instance <stable-key> --apply
@@ -549,7 +561,16 @@ launch contract. Update validates and records a new credential-free launch contr
549
561
  before it creates a journal. A native `--command` is one executable contract. Bare
550
562
  commands cannot contain arguments or URL-like selectors. Absolute paths must resolve
551
563
  to executable files. Native adapters remove, verify absence, add, and verify
552
- the target registration. Claude Desktop replaces only `mcpServers.agent-bridge`,
564
+ the target registration. `--mcp-url` selects a managed profile-local Streamable HTTP
565
+ target for Codex or Claude Code. It accepts only an explicit `http://` loopback host,
566
+ port, and `/mcp` path, with no user information, query, or fragment. The backend file
567
+ stays in place because it remains lifecycle and rollback authority even though the
568
+ native HTTP registration does not receive backend environment variables.
569
+
570
+ Claude Desktop represents the endpoint as stdio. For that runtime, `--mcp-url`
571
+ requires an existing absolute `--proxy-command`. `--proxy-args-json` must be a JSON
572
+ array of strings. The arguments must contain the exact endpoint and cannot contain
573
+ credential-like flags or values. Claude Desktop replaces only `mcpServers.agent-bridge`,
553
574
  preserves unrelated JSON values in memory, publishes through a private operation-scoped
554
575
  temporary file, and verifies the new entry. Node cannot provide an OS transaction with
555
576
  an uncooperative same-user Desktop writer. The pre-rename identity checks make this an
package/ROADMAP.md CHANGED
@@ -10,6 +10,14 @@ published and the supported clients pass a fresh end-to-end check.
10
10
 
11
11
  ## Status
12
12
 
13
+ ### Implemented, awaiting release
14
+
15
+ - Managed Codex and Claude Code registrations can move from stdio to one loopback MCP
16
+ Streamable HTTP endpoint per profile. Claude Desktop can use an exact managed stdio
17
+ proxy launch for its loopback endpoint. The update preserves backend credentials,
18
+ upgrades v1 managed metadata to a versioned target contract, and keeps restart and
19
+ rollback classification intact.
20
+
13
21
  ### Released by 0.3.1
14
22
 
15
23
  - Local SQLite and shared PostgreSQL storage behind provider-neutral interfaces.
package/SKILL.md CHANGED
@@ -93,7 +93,13 @@ For a managed registration, use `clients repair <runtime> --identity <name> --in
93
93
  only after reviewing the plan. Use `clients update` with the same metadata-selected
94
94
  runtime and instance to validate a replacement launch contract. The same identity must
95
95
  match the stored metadata and the immutable request. Native commands are one executable
96
- contract. Do not pass arguments, URLs, or credential selectors in `--command`. Repair, update, and uninstall reject
96
+ contract. Do not pass arguments, URLs, or credential selectors in `--command`.
97
+ Use `--mcp-url http://127.0.0.1:<port>/mcp` for a managed Codex or Claude Code
98
+ Streamable HTTP target. The URL must stay on loopback and cannot contain user
99
+ information, a query, or a fragment. For Claude Desktop, pair `--mcp-url` with an
100
+ absolute `--proxy-command` and a `--proxy-args-json` string array that contains the
101
+ exact endpoint. Review the plan before applying it. The existing private backend remains
102
+ unchanged and continues to anchor lifecycle recovery. Repair, update, and uninstall reject
97
103
  `--backend-config`, `--scope`, and `--config-path`; `--identity` is an assertion, not a
98
104
  locator. A no-op exact registration creates no journal. Native updates remove, prove
99
105
  absence, add, and prove the target before metadata changes. Desktop updates replace only
package/dist/bridge.js CHANGED
@@ -15,7 +15,7 @@ import {
15
15
  inspectEdgeScopeReadOnly,
16
16
  isRetryableSyncError,
17
17
  stableIdempotency
18
- } from "./chunk-J6GHXVHC.js";
18
+ } from "./chunk-7EQXQVPD.js";
19
19
  import {
20
20
  SQLiteBridgeStore
21
21
  } from "./chunk-SBVZVXGK.js";
@@ -1053,12 +1053,10 @@ var SyncingBridgeStore = class {
1053
1053
  continue;
1054
1054
  }
1055
1055
  if (report.failureRetryable === false) {
1056
- this.backgroundError = Object.assign(
1057
- new Error(`gateway synchronization failed permanently: ${report.lastError ?? "sync_error"}`),
1058
- { code: report.lastError ?? "sync_error" }
1059
- );
1060
- this.loopState = "failed";
1061
- return;
1056
+ failures = Math.min(failures + 1, 20);
1057
+ this.loopState = "backoff";
1058
+ await this.wait(this.idleDelayMs);
1059
+ continue;
1062
1060
  }
1063
1061
  failures = report.online ? 0 : Math.min(failures + 1, 20);
1064
1062
  this.loopState = report.online ? "idle" : "backoff";
@@ -1521,4 +1519,4 @@ export {
1521
1519
  isRetryableSyncError,
1522
1520
  SyncingBridgeStore
1523
1521
  };
1524
- //# sourceMappingURL=chunk-J6GHXVHC.js.map
1522
+ //# sourceMappingURL=chunk-7EQXQVPD.js.map