T11 - client automatic era detection
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 38/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- scala
- Domain
- api, networking
Research direction
Start with T10 (issue 248) and trace the client’s server/discover flow across HTTP and stdio, including the sync and streaming clients and ZIO, Ox, and Pekko implementations. Use the compatibility matrix to organize unit coverage, then run the existing legacy everything-server integration tests with the default policy. Done includes the required detection behavior, version errors, compatibility coverage, and updates to docs/client/protocol.md.
Written by the indexing model from the issue text.
Description
Target branch: 2026-07-28-protocol-support
Requires:
A chimp client with no pinned protocol version works against 2026-07-28 servers and 2025-xx servers without configuration. Users who upgrade chimp and talk to a legacy server see no change.
Policy
- The client has a version policy, automatic detection is the default. A fixed version, as today, is still available and skips detection.
- With a fixed stateless version the client behaves as in T10. With a fixed legacy version it behaves as today.
Detection
- Over HTTP the first request is
server/discover. A discover result, or a recognised 2026-07-28 error such as-32022, means the server is modern. Any other outcome, including a 400, 404 or 405 whose body is not a recognised modern error, means the server is legacy. - Over stdio the first request is
server/discoveras well. A timeout also means legacy. - The decision never depends on one specific error code.
- After a modern decision the client uses the stateless wire and negotiates the version on
-32022as in T10. After a legacy decision the client sendsinitializewith the highest legacy version chimp supports. - The decision is made once per client and reused for its lifetime.
Errors
- A modern server that shares no version with chimp fails the client with an error that names both version lists.
- A legacy server that rejects
initializefails the client as it does today.
Coverage
- The rules above hold for the sync and streaming clients, over HTTP and stdio, on ZIO, Ox and Pekko.
- The existing integration tests against the legacy everything server pass with the default policy and no other change.
- Unit tests cover every row of the spec compatibility matrix that involves a chimp client: modern, legacy and dual-era client against modern and legacy servers.
Spec:
- Versioning - Backward Compatibility
- Versioning - Compatibility Matrix
- stdio - Backward Compatibility
- Streamable HTTP - Backward Compatibility
Conformance scenarios that must pass after this task: none new.
Docs: yes.
docs/client/protocol.md: the detection rules, what the client sends first, and how to pin a version.
- Dominant language
- Scala
- Stars
- 102
- Forks
- 10
- Avg merge
- 2d 9h
- Merged PRs (30d)
- 13
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from softwaremill/chimp
-
tier:2 SDK
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
softwaremill/chimp#145 ·
-
2026-07-28 version support
Difficulty 5/5 Over a week Newbie friendliness 35/100
softwaremill/chimp#255 ·
-
2026-07-28 version support
Difficulty 5/5 Over a week Newbie friendliness 42/100
softwaremill/chimp#254 ·
-
2026-07-28 version support
Difficulty 5/5 Over a week Newbie friendliness 45/100
softwaremill/chimp#253 ·
-
2026-07-28 version support
Difficulty 5/5 Over a week Newbie friendliness 42/100
softwaremill/chimp#252 ·
All issues in softwaremill/chimp
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
typelevel/sbt-typelevel#929 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 85/100
apache/pekko-projection#635 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
Area: Excel support
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
orbeon/orbeon-forms#7893 ·
-
x:action/fix x:module/practice-exercise x:size/small
Difficulty 2/5 1-3 hours Newbie friendliness 75/100