v0.10.0
·
799 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
devin-2api v0.10.0
Full Changelog: v0.9.0...v0.10.0
Features
- feat(dashboard): serve raw stage bytes and flag binary payloads
- feat(skills): add orchestrating-agents for budgeted subagent trees
- feat(anthropic): accept client-executed tool types and surface dropped input
- feat(chat): accept legacy function-calling dialect
- feat(gate): replace token bucket with upstream-aligned minute window
Fixes
- fix(debuglog): warn when index.jsonl outgrows the replay window
- perf(debuglog): lowercase filter query once before the scan
- fix(scripts): default quota probe output path and precheck crossnote sources
- fix(panel): unify burn-forecast wording, clean matrix ARIA and dead css
- fix(panel): harden shared helpers, request filters, usage sort and zoom
- fix(devin): write gate state file under mu to avoid stale latch resurrection
- fix(devin): cancel superseded pump on reopen, classify connect failures
- fix(app): surface Retry-After on upstream catalog failures
- fix(debuglog): redact modelassignmentjwt in sanitized payloads
- fix(debuglog): retry index tail read once before declaring replay done
- fix(obs): exclude stale and future buckets from rates window
- fix(dashboard): mask rotated upstream tokens and reset sessions on password change
- fix(dashboard): keep unreported quota fields distinct from 0%
- fix(main): probe port holder on the bound host, not always loopback
- fix(dashboard): keep unreported quota fields distinct from 0%
- fix(responses): hold reasoning item open across signature fragments
- fix(debuglog): count write-after-close drops in droppedTotal
- perf(dashboard): serve latency-only usage summary on /stats
- fix(anthropic): placeholder for unsupported tool_result content blocks
- fix(chat): ledger non-positive token and top_k fields as dropped
- fix(responses): reject empty input and ledger orphan reasoning drops
- fix(scripts): preserve listen host when smoke.sh rewrites the port
- fix(upstreamstub): heartbeat for the life of the connection
- fix(loadtest): surface truncated upstream streams
- fix(protocensus): count retry attempt wire requests in census
- fix(devin-2api): share reuseport on pprof listener, gate samplers on bind
- fix(debuglog): classify disconnects by result before status code
- fix(app): disarm ws replacement replay inside finalizeReplacement
- fix(anthropic): hold thinking block open across signature fragments
- fix(adapter,app): close two real defects found in review
- fix(upstreamstub): reject unknown scenario names at startup
- fix(probe): tolerate numeric enum strings when stripping stop reason
- fix(dashboard): surface constructor failure and login error content type
- fix(common): honor spec tool_choice spellings and soften hosted-tool choice
- fix(anthropic): deliver thinking signatures and redacted blocks per spec
- fix(api): key encoder state per block, dedupe output ids, iterate in order
- fix(api): strip codex permissions block via sanitize rules
- fix(devin): isolate streamed partial across pump and consumer
- fix(devin): unify retry bookkeeping and bind per-call request fields
- fix(devin): recheck cancellation on gate wake and honor injected clock
- fix(debuglog): strip retry attempt shards during payload retention
- fix(debuglog): return early when Complete runs twice
- fix(app): close drain races and record the status actually sent
- fix(scripts): verify pid before killing and harden GitHub resolution
- fix(build): align Dockerfile toolchain with go.mod
- fix(panel): surface upstream errors and repair merged view
- fix(debuglog): wire io_errors and fix retention aging
- fix(api): align the three protocol frontends on edge semantics
- fix(adapter): rearm no-progress watchdog and stop encoder data loss
- fix(app): attribute cancellations correctly and tighten stream edges
Other
- refactor(probe): route through production wire plumbing
- refactor(config,devin): export token discovery and client identity
- refactor(devin): unexport gateEventCap
- refactor(app): label WS responses turns at the call site
- refactor(app): share turn admission between HTTP and WS
- refactor(debuglog): name error stages as constants
- refactor(llm): drop wire-dead ToolResultMessage.ToolName
- chore(taskfile): drop dead CONNECT_GO_VERSION variable
- refactor(devin): drop dead Config.ModelAssignmentJWT
- docs(errors): note 499 also covers locally-initiated upstream cancel
- test(app): expect [DONE] terminator after stream error chunk
- docs(debuglog): correct rate_limited and flush-durability comments
- docs(skills): simplify orchestrating-agents to plain principles
- build(proto): align generated go.mod go directive with root 1.27.1
- ci(security): pin govulncheck to v1.8.0
- docs(skills): drop agent-count budget machinery, spawn limits live in settings
- docs(skills): drop brief template and same-skill mandate
- refactor(api): share the stream-failure prelude in common.StreamError
- refactor(errors): finish llm.Failure migration for leftover call sites
- docs(skills): rewrite orchestrating-agents skill in Chinese
- refactor(protoextract): drop dead descriptor map and unused param
- test(config): assert every config field is classified on reload
- refactor(llm): demote orphan tool results once on RequestMessages
- refactor(errors): move classification into llm and carry Failure through stream flatten points
- refactor(dashboard): ship attribution and labels from server, drop JS policy replicas
- refactor(errors): carry typed llm.Failure records instead of re-parsing text
- refactor(probe): resolve the token once in main
- refactor(dashboard): drop dead prefix param from shortEnum
- refactor(dashboard): reuse debuglog primitives in panel reads
- refactor(upstream): drop NewBasicAuthTransport in favor of the func variant
- refactor(llm): drop never-populated fields and simplify IsJSONObject
- refactor(api): assemble error payloads through the shared builder
- chore: ignore local build artifacts
- refactor(app): name debug stages and SSE marker via constants
- refactor(api): share usage totals, reasoning items and content helpers
- refactor(obs): drop impossible nil guard on Finish
- refactor(devin): drop contract-dead guards and document internals
- refactor(devin): group rate-gate knobs under GateConfig
- refactor(debuglog): drop never-populated projection keys
- refactor(debuglog): extract sanitize module and name stage files
- chore(cmd): drop model and status probes superseded by probe
- ci: gate docker latest on stable versions and enforce go mod tidy
- test(server): cover reload validation, proxy redaction, and login sweep
- docs(rate-limit): record aligned fixed-window shaping decision
- chore(agents): vendor refactoring and debugging skills