Skip to content

[release] v0.105.4#5368

Merged
mmabrouk merged 15 commits into
mainfrom
release/v0.105.4
Jul 18, 2026
Merged

[release] v0.105.4#5368
mmabrouk merged 15 commits into
mainfrom
release/v0.105.4

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

New version v0.105.4 in

  • web
    • web/oss
    • web/ee
  • services
  • api
  • sdks
    • sdks/python
  • clients
    • clients/python
    • clients/typescript
  • kubernetes
    • kubernetes/helm

mmabrouk and others added 8 commits July 16, 2026 15:39
… surgical --recreate/--rebuild

run.sh hardcoded a single compose file, so a routine `run.sh --build` recreated the
runner without the local harness override (mounts the operator's Claude/Pi subscription)
and broke self-managed agent auth. run.sh and hand-added overrides were mutually unaware;
whichever ran last won.

- Auto-include docker-compose.<stage>.*.local.yml from the edition dir (sorted), print
  the effective compose file set every run, skip with --no-local-overrides.
- --compose-file <name> (repeatable) appends extra files by bare name or path.
- --recreate/--rebuild <service> (repeatable): surgical single-service restart with the
  full assembled -f set and same env handling; --rebuild honors --no-cache and builds the
  .<name> anchor when the service has no build config; unknown services are rejected.
- gitignore docker-compose.<stage>.<name>.local.yml (keeps committed gh.local files).
- Docs: hosting/AGENTS.md + docs/packs/hosting.md.

Claude-Session: https://claude.ai/code/session_019TK4ow9a3dXUNY657djbQr
… replay

buildTurnText only detected an approval resume, so a request_input answer
(a non-approval tool_result) fell into the normal-turn frame that re-presents
the stale original prompt as "The user now says: <prompt>". The model treated
it as a fresh request and re-asked, looping.

Generalize resume detection to resumeKindFor -> "approval" | "client" | null:
a client resume is a non-approval tool_result in an assistant-role message
after the last user-text message. Add a client-resume closing frame that tells
the model to continue from the pause using the provided result. Also covers
request_connection and decline/cancel settles.
… test

The default resolve stub in test_invoke_handler.py returned a successful
runtime_provided ResolvedConnection pinned to provider 'openai'. With the new
post-resolve harness capability gate this is rejected on the claude harness
(openai is not a claude-consumable provider), breaking
test_invoke_cross_harness_same_body_divergent_configs.

Make the stub raise ConnectionResolutionError instead, exercising the real
no-connection degraded path that every harness tolerates, which is what these
response-body/lifecycle/cross-harness tests are meant to check.
…t-kind

The remote-tools gate only refused when the sandbox was remote AND not Daytona.
A non-Pi (Claude) run on Daytona requesting ONLY client-kind tools therefore
passed validation, then silently advertised zero tools: the in-sandbox stdio
MCP shim delivers only executable (gateway/callback) tools and omits client
tools, so nothing remained to advertise. mcp.ts's own log admits this case
('run-plan should have refused this run'), and its doc comment documents
refusal as the intent.

Implement that intent: inside the Daytona branch of the gate, refuse when no
executable tool remains after excluding client-kind tools, with a message in
the REMOTE_TOOLS_UNSUPPORTED_MESSAGE style. A mix of client + executable tools
is unaffected (the executable ones are delivered). Flip the now-incorrect
'allows claude x daytona x client-only tools' unit test to expect refusal.
@vercel

vercel Bot commented Jul 17, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
agenta-documentation Ready Ready Preview, Comment Jul 17, 2026 10:56pm

Request Review

@dosubot dosubot Bot added the size:XS This PR changes 0-9 lines, ignoring generated files. label Jul 17, 2026
…eate

feat(hosting): run.sh auto-includes local compose overrides and gains surgical --recreate/--rebuild
@dosubot dosubot Bot added size:L This PR changes 100-499 lines, ignoring generated files. and removed size:XS This PR changes 0-9 lines, ignoring generated files. labels Jul 17, 2026
@github-actions

github-actions Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor Author

Railway Preview Environment

Status Destroyed (PR closed)

Updated at 2026-07-18T11:10:25.125Z

…-loop

[5357] fix(runner): recognize client-tool settles as a resume in cold replay
…y-tools-gate

fix(runner): refuse a Claude-on-Daytona run whose tools are all client-kind
feat(agents): OpenAI-compatible endpoints for Pi via vault custom connections
@dosubot dosubot Bot added size:XXL This PR changes 1000+ lines, ignoring generated files. and removed size:L This PR changes 100-499 lines, ignoring generated files. labels Jul 17, 2026
@dosubot dosubot Bot added the lgtm This PR has been approved by a maintainer label Jul 18, 2026
@mmabrouk
mmabrouk merged commit 80daf23 into main Jul 18, 2026
75 of 77 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lgtm This PR has been approved by a maintainer size:XXL This PR changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants