Repository navigation
v0.1.0-rc.10
·
30 commits
to main
since this release
Changelog
- c98fc2e build(deps): bump @modelcontextprotocol/sdk in /sdk/js
- 7d87557 build(deps): bump golang.org/x/sys from 0.48.0 to 0.49.0
- eff140c build(deps): bump the docker-digests group across 1 directory with 3 updates
- 0d4600f build(deps): bump actions/setup-node from 4.2.0 to 7.1.0
- 0691cf3 build(deps): bump actions/download-artifact from 8.0.1 to 8.0.2
- 76434e8 build(deps): bump the python-deps group across 3 directories with 2 updates
- b9719e0 router: one control plane sync loop, --control-plane-sync-interval
- 5dc6653 policy: a publish grant reaches its verifiers through the policy text
- 99076bc policy: allowed_publish grants what a member may publish, deny by default
- 93ba9a1 directory: a record names its service, and the router checks the key is its
- 0b09ba4 sdk: a member announces where it is reached under its peer key
- 27013fa directory: a lookup one router answers with nothing is put to the next
- 9513363 router: keep the directory's records itself, and let a member withdraw them
- 9fc9aaa bump go biscuits
- a25cb24 kind e2e: a node on the mesh holds routers, it keeps no DHT
- d4bdbfa sdk: describe discovery through the held routers
- cd3b6f3 api: drop the gossip discovery announcements
- 65af27b router: resolve dnsaddr router addresses through the test DNS server
- f73afa0 node: announce the node's own record and show what the directory holds
- 3d39674 router: federate before the directory needs the other routers
- 900d656 node: announce the services again whenever a router is attached
- 98ea016 router: admit an authenticated peer router to the table on every pass
- 97f7234 docs: a member holds its routers and asks them for the directory
- 3f6417e sdk/js: ask the held routers for the directory, floodsub for events
- 40f1b0d sdk/python: ask the held routers for the directory, floodsub for events
- 978ffca node: a member is a leaf of the gossip
- cb46231 node: ask the routers for the directory instead of keeping a DHT
- af95c1d router: serve the directory to members over /mesh/directory
- b05e08c api: the directory protocol a member speaks to its routers
- 5943f4d docs: a router serves nothing before the handshake
- 76d21c3 sdk/js: authenticate on any connection to a listed router, release after a lookup
- 3606ae8 sdk/python: authenticate with a router before querying it, release after
- 66e8269 node: serve gossip to authenticated peers only, handshake before a query
- 1aaca97 router: serve the DHT and gossip to authenticated peers only
- 13afdcb AGENTS.md: nothing interacts with the mesh unauthenticated
- 92f4d96 feat(agentmesh-cop): watch the mesh as a member through the Python SDK
- c443522 sdk/python: follow the mesh's replication of closer routers in a walk
- 4f28721 sdk/js: the mesh's replication factor from /info is the DHT client's k
- 2fb2bf4 docs: size a mesh by routers per member, routers per key and routers
- 7c28f0f node, router: the mesh's replication factor is kademlia's k on a member
- 6dd99e1 node: handshake with every router it connects to, and keep the session
- 2113a5f node, router: record TTL and reprovide interval from the control plane
- 9acda18 api, control plane: the mesh's directory parameters on /info
- f65254b node: stop refreshing the DHT table; the catalog prunes it
- d323f63 node: a member is a DHT client whatever its reachability
- 9fd1a41 controlplane, console: tell the root admin from an OIDC subject named root-admin
- ec6b2c2 controlplane: leave admin-token bootstrap tokens unowned
- 6c8ee6f controlplane: test admin-token bootstrap token with SQLite foreign keys on
- 241cf12 logging: default --log-format to text, own ring buffer, and set cfg.Level
- 3a727da cmd: add --log-format alongside --log-level
- 3671ada cmd: share the go-log setup in internal/logging
- 1046895 cmd: make LOG_FORMAT=json take effect
- 31ac5ce docs: scalability guide with the 10k figures and the connection model
- cf1d27f router: budget the per-connection protocols from the connection cap
- eb641fe p2plimits: a stream budget carries the memory its streams reserve
- b220c2f bench: deflake TestRunJoinHoldTurnsFlapsIntoOutageWindows
- 72e6066 docs: connections, streams and roles in the scalability guide
- 071bc4c node: dial TCP first
- e46a2c0 node, router: name the connection at QUIC's stream limit, count how a caller fares reaching a provider
- 8a96506 p2plimits: charge the per-source cap to the address a connection comes from, not its relay
- a0d82ce node, router, control plane: --pprof-addr serves Go runtime profiles
- ca974aa console: list revoked nodes for admins with a Restore button
- 9fa539d sdk: keep the interface path when rewriting the A2A agent card
- 3373bf5 node: keep the interface path in the regenerated A2A agent card
- a74089d site: fix text bounds in architecture SVG and terminals, add tab ARIA attributes
- 1c36ddd site: redesign visual landing page, replace architecture diagram, and pin Hugo/Docsy
- d3bb270 node: state observed and expected values in the streaming assertions
- 7cbd5c9 node: keep the agent's streaming capability in the A2A card
- e5bcbf4 sdk/js: push the relay address to the routers already connected
- c6ee17f release: publish checksums.txt and sync the site install.sh
- ce11cc4 node: relay agent card caching headers and send an ETag
- 273e6fb node: take the address a failed lookup learned, clear the backoff its dial left
- 85bc5d1 router: record where a member that reserved with it is reached
- 9c453b9 router, node: budget the DHT and gossip streams per member, count refused streams by protocol
- 8be6847 node: relayTransportAddr as a slice of the circuit's components
- b221cee node: handshake with a transit router the catalog does not list
- 9d42945 deploy: wait for the router rollout as long as the routers take
- 4c8124b sdk/js: regenerate agentmesh_pb.ts with protoc-gen-es v2.16.0
- b19deaa build(deps-dev): bump @bufbuild/protoc-gen-es in /sdk/js
- f61d102 p2plimits: refuse a cap under one, take a nil logger and a nil endpoint
- 49dd3ce node: size inbound limits from the connection budget and count refusals
- 9125f66 controlplane: name nodes whose roles fail in the unserved-egress warning
- 2400206 build(deps-dev): bump @types/node from 26.6.2 to 26.6.4 in /sdk/js
- eb515de build(deps): bump github.com/libp2p/go-libp2p-pubsub
- 0afd23b scale: the ladder retries a dropped ssh session
- 99546a3 controlplane,router: wait for publisher admission and peer identify in tests
- b040808 node: refuse a provider TTL not exceeding the reprovide interval; drop --mesh
- dd17037 router: forget a peer router the control plane no longer lists
- d48b1dc agents: a flaky test is a bug report
- b90ad0e node: reprovide within the provider TTL
- d0af194 node: try the routers that admitted us when a peer announced no circuit
- e3e453f router: authenticate a listed peer router whenever it is not admitted
- bfa83b4 agents: auditable behavior, safe defaults, idiomatic Go tests
- 3bee1c3 tests: poll instead of sleeping; node: /debug/peer-addrs
- 975de2b e2e: idle nodes hold their router; a call connects them
- 970855a deploy: router count per environment, ROUTER_REPLICAS
- dbc920b router: close a connection that does not authenticate within a deadline
- a503af8 node: transit one router to reach a peer, the one it shares when it can
- 8b871af node: one router candidate per /info entry, the peer the entry names
- 880109a node: stop seeking out other members; router: count members, not connections
- 67a2caa deploy: build the node image for arm64 on every push
- 91997a6 sdk: canonicalize router peer IDs at session boundaries
- 1af6b7e sdk: hold two routers chosen by load and labels, and handle router go-away
- e741f43 docs: size a mesh by routers, not by one router's watermark
- 7a6ff6f tests: a node moves to another router when the one it holds stops
- 2529ff8 router: a trim closes the connections that never authenticated first
- 0b00c60 router, node: a router sends members away when it drains or is overloaded
- 7eed58b tests: nodes attached to different routers reach each other
- 0603fd7 node: authenticate to a router it transits before asking for a circuit
- 87e17ca node: publish a circuit address for every router it reserved on
- b91801f node: attach to two routers, chosen by label and load
- 1d1ac56 api, control plane, router: list routers on /info with labels and load
- 589520a router: a trim sheds 15% of the connections, not three quarters
- 2a1995b docs: a scalability guide
- a888f2a client: bound the enrollment retry by time, not by attempts
- da15604 api,node,control-plane: type the OAuth metadata documents
- 37b7c74 node,docs: accept RFC 7523 client assertion and jwt-bearer grants on /oauth/token
- 003f848 site: fix landing page /docs/ link and subpath asset paths
- 11ff26e site,docs: serve website from google.github.io/agentmesh
- a3dceb4 docs,site: remove asciinema demo, enlarge logo, and drop sam-mesh.dev links
- ff964d8 node: observe the router-side drop by notification in TestRouterDropIsRedialed
- abd436c docs,mobile,deploy: clean up remaining SAM references and restore rename note
- baeac79 build(deps): bump @bufbuild/protobuf from 2.15.0 to 2.16.0 in /sdk/js
- daf7b00 build(deps): bump modernc.org/sqlite from 1.60.0 to 1.60.1
- a047f9e build(deps): bump devcontainers/go in /.devcontainer
- 670715a build(deps): bump devcontainers/base in /.devcontainer/testnet
- 268318c build(deps): bump ghcr.io/devcontainers/features/node
- 110ed0c build(deps): bump @modelcontextprotocol/sdk in /sdk/js
- e108b93 build(deps): bump google.golang.org/grpc from 1.83.2 to 1.84.0
- e912692 build(deps): bump gradle-wrapper in /mobile/agentmesh-node-app/android
- f89286e build(deps-dev): bump @a2a-js/sdk from 1.2.1 to 1.3.0 in /sdk/js
- b59b6ad build(deps): bump url_launcher in /mobile/agentmesh-node-app
- 5821959 build(deps): bump the python-deps group across 4 directories with 8 updates
- cf6f289 mobile: rename libsam.so and sam_ffi.dart to libagentmesh.so and agentmesh_ffi.dart
- 70c3bd2 docs,site,mobile: remove SAM from icons, logos, diagrams, and mobile screenshots
- 6bcf830 scale: count the members that stayed, not the ones that were started
- 435e9ad deploy, chart: requests without limits, and a router VM with a core
- 7c03f39 node: answer 502, not 403, for a provider that did not answer
- e47aa59 router: size libp2p's stream limits from the connection budget
- f6a3e53 node: retry the routers that did not admit it in time
- fd633fa node, control plane: retry an enrollment the limiter turned away
- 9d4bd0b fix(e2e,mobile,bench,docs): fix Bats Helm release name, mobile E2E script paths, bench test race, and docs URLs
- b8386f1 fix(storage,deploy): migrate persisted sam: prefixes and support in-place GKE testnet upgrade
- 8bfe8ba docs: update Hugo site, documentation, README, and AGENTS.md for Agent Mesh
- e93e3c7 refactor(deploy,mobile,e2e): rename Helm charts, K8s manifests, mobile app, E2E tests, and CI workflows
- c6de13e refactor(sdk): rename JS and Python SDK packages to @agentmesh-p2p/sdk and agentmesh-p2p
- 8078bf7 refactor(cmd,internal): rename CLI binaries, env vars, and default paths to agentmesh
- 3109e61 refactor(api): rename protobuf package to agentmesh.v1 and wire prefixes to mesh
- 1e54eb5 refactor: rename Go module from github.com/google/sam to github.com/google/agentmesh
- 7e482c6 Apply batched suggestions from code review
- afd667b docs, cli: update project name to Agent Mesh (SAM)
- 9b7652d scale: member ladder, a testnet's capacity in steps of minions
- abe9075 node: --reachability, private by default or left to AutoNAT
- a577440 router: export capacity, draining and the relay budget on /metrics
- 261b436 router: size the relay budget to the mesh
- 64b9d26 router: announce the time away on shutdown through the lease ttl
- 63da499 docs: add multi-tier enterprise guardrails example, docs, and demo video
- 9474b96 go.mod: golang.org/x/net v0.60.0
- f441673 node: name the address behind which no router was found, log a redial without identity
- 6e20d78 deploy: give the control plane and router rollouts the time they take
- 11a4dab deploy, chart: hold a router rollout 90s between pods
- fce0996 node: dial the routers at once, be ready on the first, and redial one that drops
- 4b39056 deploy: a resident soak fleet on each testnet, and an alert when a member loses the mesh
- 3328d8e scale: member-journey harness, with an integration test and a CI job
- cd5d80a bench: add sam-bench join, the journey of the Nth member
- afb61d1 router: derive the per-source-IP connection cap from the high watermark
- 4da1f4a node: perform the MCP handshake once in the stdio bridge
- c0e2797 node: rename debug observed addresses to announced addresses
- 378197b Update sdk/python/src/agent_mesh/session.py
- 61f31c6 node, sdk: present a refreshed credential to the routers already connected
- 62858bc ci: show canaries with zero available replicas as 0/N in the health report
- 3a7bb34 node, deploy: align DHT provider record TTL with the 15m default
- d7721e7 router: drop the redundant default note from --dht-provider-addr-ttl
- 323a069 router: expire provider records 15 minutes after the last announcement
- 087f24b mobile: read the version once in initState
- d0f66e4 feat: show the build version in the console and the Android app
- 84c157e Update envoy_test.go
- e3f6741 fix: keep target platform for Dockerfile.sam-sdk-js builder stage
- 6b5477e build: cross-compile multi-arch Docker images natively with BuildKit cache