Repository navigation
Releases: marvell/sprut
Releases · marvell/sprut
Release list
v0.3.3
v0.3.2
Changelog
- 69e0b77 Log each HTTP exchange of a Login with -v, and explain a refused registration
v0.3.1
v0.3.0
Changelog
- f16666f Derive what Reports and Auths repeated, and check one Upstream directly
- bd0b9ac Cover renewal of Credentials past their expiry, and name dead ones so
- 468e1a3 Drive the Credentials renewal tests by state, not by sleeping until expiry
- bee9b7e Open the test Auths of a state directory with one helper
- d53578f Give each Upstream's Login and Credentials one auth module
- 222d063 Show an expired renewable access token in list, and check dead Credentials
- 9afae6a Build one structured report of each Upstream for sprut upstream list
- af35ad3 Say that an edit reporting no change must leave the Config as it was
- ce037c3 Have a Config edit hand back the edited Config
- 117ccf7 Check nothing after an edit whose Upstream the Config lacks, as before
- 3c81f18 Make config the one module that opens the Config and looks up entries
- 327b431 Keep the config path on a failed filepath.Abs, and say why
- 5eb80b3 Give each rule in the sprut upstream commands one home
- 58fe808 Check every upstream --help leaves stderr empty, and logout help
- ee56bcd Let sprut upstream commands act on an Upstream named h or help
- 0366b7d Check that each upstream command's help leaves stderr empty
- 8ea325e Write glossary terms lowercase in help and output
- 40d4459 Name the STATE label of a check after what it is
- 4b1ef86 Check the Upstream after sprut upstream add and enable
- 9ae78aa Read an entry's fields one way for the parser and SetDisabled
- 06d70a2 Add sprut upstream enable and disable
- c0ab164 Move the Config editing helpers out of upstream add
- 1055596 Add sprut upstream remove
- 2970602 Keep a header's trailing spaces and refuse empty OAuth values
- 8778d7c Add field flags to sprut upstream add
- aff5990 Name the start result and the list check after what they hold
- c320f31 Add sprut upstream list --check and a shared health check
- 3388726 Write a Config symlink's target even before it exists
- 64e4f6f Add sprut upstream add for stdio and HTTP Upstreams
- 20c1cbd Give sprut upstream logout its own file, matching its tests
- 9786cab Move login and logout under sprut upstream, drop sprut auth
- 86537f1 Point the issue tracker at the Sprut v0.3 project
- 59b6fef Show unreadable Credentials in their row of sprut upstream list
- 374e466 Add sprut upstream list: every Upstream in the Config, offline
v0.2.0
Changelog
- fec4784 Fuzz the Config parser, and measure coverage with make cover
- cc60e4d Test the CLI surface with testscript, against the real main
- 66f4e60 Test the Credentials Store and Source on their own API
- 30e5060 Compare structured results with go-cmp
- ab45b74 Log sprut's stderr to the test output, and use t.Context
- 96f6254 Give the cli test helpers files of their own
- a4e561a Move the fake OAuth Upstream into internal/mcptest
- d5bd2e6 Move the fake Upstreams into internal/mcptest, with a typed spec
- a60cee4 Allow black-box tests in any package (ADR-0004)
- 7d56d8d Log where serve reads the Config from
- 3307cdf Build every needs-a-login error one way in the OAuth handler
- 2a92a83 Move the Credentials renewal into one module: credentials.Source
- 0236db0 Name the Config in the login hint, and make -c a global flag
- a23af9b Move the Credentials renewal protocol into the Store, and save renewals before exit
- 354f2e6 Record AS error, proxy and fake-server gotchas, and run goimports in make fmt
- 1f55323 Fix review findings on auth status and AS error bodies
- fa2c2dc Add auth status, logout and login for all, and harden redirects and AS errors
- 0a18873 Record flock gotchas and a rule for tests that sleep to let a race happen
- bd59e77 Fix review findings on shared Credentials renewal
- f58820f Share Credentials renewal across sprut processes
- 5f18cda Record SDK scope and pre-registered client gotchas, and keep the spec in step
- 6aefad0 Fix review findings on oauth in the Config
- 5bbc063 Configure a pre-registered client and scopes, and bind Credentials to them
- 11fee80 Pin a failed HTTP request as an isError result, and point to gotchas earlier
- 34ee759 Fix review findings on Credentials renewal
- 61e9859 Renew Credentials in one sprut serve process
- b4474f0 Add Linear to the example Config as an OAuth Upstream
- fd2be22 Reject an iss-less response from a server that promises iss
- 3af7294 Harden the Login: browser, callback, iss and timeout
- f7fb51c Record the go-sdk, urfave/cli and os behaviour that P-960 dug up
- 002b778 Close existing Credentials directories, and name OAuth checks plainly
- 9e1bff5 Log in to an OAuth Upstream with DCR and serve it with the stored token
- 91fc79f Give healthy fakes room to start, and gate commits on make check
- 7a7fcff Have the implement skill claim the issue before any work
- 892c116 Stop TestServeImposesNoTimeoutOnToolCalls flaking under load
- c25d4ee Name the skipped Upstream type and its count apart
- 4ab8fde List the Upstreams skipped at startup in the Gateway's instructions
- f6179ac Prepare for OAuth: Login and Credentials, ADR 0003, the v0.2 project
v0.1.1
Changelog
- 5a65649 Cache the pinned tools in CI: one tools module per tool setup-go keys its cache on go.sum and saves it only on a miss, but tools run with go run pkg@version are not in go.sum. The cache was saved once before release-check existed, so every run downloaded and built goreleaser again, about 95s of a 3-minute check. Each tool is now pinned in tools//go.mod and run with go tool, and CI adds tools/*/go.sum to the cache key. One module per tool, because a shared one resolves their dependencies together: goreleaser raises go.yaml.in/yaml/v4 past the rc actionlint builds with.
- b69577d Exit 1 when the session with the Agent fails
- e81ee05 Let a second signal kill a hung sprut
v0.1.0
Changelog
- 2157f57 Simplify the stdio Upstream's exit report and the log checks
- 96a8225 Have one module start and stop the Upstreams: upstreams
- 5ccb694 Make a stdio Upstream one module: stdioUpstream
- d950b09 Report a stdio Upstream that exits right after listing its tools
- 0355976 Fix two stale comments on the stdio Upstream state machine
- 211a8c2 Track a stdio Upstream's lifecycle as one state machine
- 9a0f22b Give each Transport its own adapter for connecting to an Upstream
- 339116f Address review of P-949
- 260feb2 Detect HTTP+SSE-only Upstreams by the endpoint event (P-949)
- 6487c28 Cover a root flag parse error before a subcommand (P-952)
- 326685f Address review of P-953
- 0274374 Let a repeated mcpServers key replace the earlier one (P-953)
- 4901f62 Address review of P-954
- 8c2031b Reject null where a string or bool is expected (P-954)
- e99e813 Address review of P-955
- a11ee93 Skip an Upstream whose url is empty after interpolation (P-955)
- fb787ce Address review of P-957
- f8ca983 Bound the time it takes to stop a stdio Upstream (P-957)
- dddc700 License sprut under MIT
- 2d40858 Address review of P-946
- 692e32e End a stdio Upstream's connection when its leader exits, even if a descendant holds stdout (P-946)
- 82651a7 Keep static headers off an HTTPS→HTTP redirect to the same host (P-945)
- 10c0c91 Check the release config and workflows on every push
- 4062fcc Address review of P-931
- 4ccac03 Add --version, usage errors with exit 2, goreleaser and a README (P-931)
- 32239fb Address review of P-941
- cac4bc9 Catch flaky tests deterministically and by repetition (P-941)
- ee05d9d Add an HTTP Upstream to the example Config
- 9e9c29f Address review of P-932
- 697f4c2 Report an Upstream exit even when the SDK closes first
- 0686369 Connect to Streamable HTTP Upstreams (P-932)
- 1a7fe36 Add a modern Upstream to the example Config
- d0d6759 Address review of P-930
- 01632d3 Bridge MCP protocol eras and refuse interactive input (P-930)
- 332974b Lint that a context is the first parameter
- 53b817b Warn when a started Upstream exits on its own
- 4ccce83 Log Upstream startup duration and keep Config order
- e42fad1 Address review of P-928
- 85be7d1 Handle tool-call failure modes (P-928)
- fae8bf0 Move the ticket workflow into the implement skill
- 389b72e Simplify the stdio Upstream transport
- 15b87dc Address review of Upstream process hygiene
- 90dc4ae Stop Upstreams by process group and log their stderr
- 91b2a65 Address review of the refactoring
- 3348f32 Extract newLogger and loadConfig from the serve Action
- d176909 Bundle the Upstream startup parameters into a starter
- 67f9a34 Extract addTools, upstreamEnv and forward in the gateway
- 73965e4 Extract transport inference, target check and unset warning from parseUpstream
- e20493c Take out-of-scope work from the project's open issues, not only blocks
- 9105cc4 Address review of P-933
- 1f83a15 Add serve --dry-run and -v DEBUG logging (P-933)
- bf37bbf Add a memory Upstream to the example Config
- 0ddab8f Tighten the seams step and point the Connect gotcha at its code
- aed759e Record P-927 retro: go-sdk and urfave/cli gotchas, seams, helper reuse
- 38995ae Simplify P-927 code and tests
- 49403ba Address review of P-927
- 75defcd Start Upstreams concurrently with a bounded, resilient startup (P-927)
- 12eeb7b Tighten agent docs and add review standards
- 0785896 Enable standard linters and close seam-lint gaps
- c59cad3 Derive Config entry checks from one field table (P-926)
- 01a3de0 Parse the full Config: schema, ${VAR}, path resolution, validation (P-926)
- 89f70ec Have subagents fetch ticket, spec and out-of-scope work from Linear (P-937)
- 2c5a75a Add agent notes on go-sdk and urfave/cli gotchas (P-936)
- db5d3f8 Word the seam-rules line in CLAUDE.md by when it applies
- a3dbf86 Lint the spec's seam rules with golangci-lint in CI (P-935)
- a9e1788 Point agents at make check before committing
- 067ac8c Add Makefile with check targets and run them from CI
- d593be7 Add CI: gofmt, vet and race-enabled tests on every push and PR (P-934)
- 8fa7ef8 Simplify gateway, config errors and test harness
- 947ae99 Add example Config with the reference everything server
- b234344 Add tracer bullet: sprut serve proxies one stdio Upstream's tools (P-925)
- 7a509c7 Set up agent skills and v0.1 design docs