Skip to content

Releases: marvell/sprut

v0.3.3

Choose a tag to compare

@github-actions github-actions released this 13 Oct 20:09

Changelog

  • 1c6ffe3 Publish a Homebrew cask on release, and add badges and search keywords to the README
  • f1d2680 Open the README with the problem sprut solves, its benefits and a quick start
  • 39d9057 Warm the Go module proxy after a release, so the first go install is fast

v0.3.2

Choose a tag to compare

@github-actions github-actions released this 13 Oct 13:07

Changelog

  • 69e0b77 Log each HTTP exchange of a Login with -v, and explain a refused registration

v0.3.1

Choose a tag to compare

@github-actions github-actions released this 13 Oct 12:38

Changelog

  • 865f38b Share the redirect cap, store the fake's issuer, and log in with logInTo
  • b96dd7f Follow a redirect of OAuth discovery to a private address

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 13 Oct 10:53

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

Choose a tag to compare

@github-actions github-actions released this 09 Oct 13:54

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

Choose a tag to compare

@github-actions github-actions released this 08 Oct 13:28

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

Choose a tag to compare

@github-actions github-actions released this 07 Oct 21:23

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