Releases: WncFht/devin2api
Releases · WncFht/devin2api
Release list
v0.11.0
Immutable
release. Only release title and notes can be modified.
devin-2api v0.11.0
Full Changelog: v0.10.0...v0.11.0
Features
- feat(dashboard): show resolved model and retries on in-flight requests
- feat(deploy): drive prod deploys from the dev machine, add darwin CI smoke
- feat(dashboard): flag aliases shadowing catalog model uids
- feat(devin): wildcard and case-fold aliases surfaced in /v1/models
- feat(config): validate and normalize devin.aliases
- feat(models): surface devin.aliases in /v1/models and flag shadowing
- feat(probe): edge cases for image prompts, parallel call ids, tool count, history names
- feat(dashboard): sample grace-period and top-up quota fields
Fixes
- fix(scripts): guard empty-array expansion for bash 3.2
- fix(api): echo the requested model in non-stream responses
- fix(dashboard): count Bearer auth failures in the login ledger
- fix(llm): don't classify peer RST_STREAM CANCEL as client cancel
- fix(devin): align stop-sequence holdback window to rune boundaries
- fix(devin): run capability checks on the resolved model uid
- fix(app): tag stream error DebugRef before event enqueue
- fix(devin): widen codex-opensource-def pattern to the fingerprint span
- fix(anthropic): close content blocks in index order at stream end
- fix(devin): honor tool_choice=none on the wire and surface schema drift
- fix(api): tighten decode edges and cut per-frame overhead
- fix(devin): revive rate_gate stage and classify RST/GOAWAY as transient
- fix(llm): tri-state reset hints and http2 transport-break classification
- fix(dashboard): sandbox raw request-payload previews
- fix(dashboard): activate usage-table sort headers via keyboard
- fix(anthropic): buffer thinking-signature fragments into one delta
Other
- ci: skip PGO for test builds and bound the macOS job
- docs: sync remaining runtime-dir wording to the config/state split
- refactor(deploy): split binary/config/state into per-platform standard dirs
- chore(tooling): ignore tmp/ scratch dir and align lint scope with gitignore
- docs: document archbox dev topology and dual-machine deployment
- docs: correct drifted claims against fresh live probes
- refactor(debuglog): embed usageTotals across aggregation dimensions
- docs(skills): fold work-stance preferences into orchestrating-agents
- docs(probe): note invalid yaml drops the whole config
- docs: fix stale symbol references in comments
- docs(devin): redate unverifiable sanitize claims
- refactor(debuglog): always defer response-event projection
- docs(skills): make brief contents a judgment call, not a required checklist
- docs(skills): let workers mount domain skills and talk back mid-flight
v0.10.0
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
v0.9.0
Immutable
release. Only release title and notes can be modified.
devin-2api v0.9.0
Full Changelog: v0.7.0...v0.9.0
Note
v0.8.0 was tagged on a commit whose Windows cross-compile failed, so it never produced a release. v0.9.0 supersedes it entirely — its changelog is folded in below.
Features
- feat(panel): filter aria-labels, KPI tooltips and topnav overflow
- feat(panel): health-matrix endpoint, keyboard grid, truncation banner
- feat(deploy): zero-downtime restart via SO_REUSEPORT handoff
- feat(panel): keyboard access, view prefs, polish
- feat(scripts): add perf-snapshot and bench baseline workflows
- feat(upstreamstub): add stream scenario with tunable frame pacing
- feat(debug): add optional pprof/fgprof listener on a dedicated port
- feat(debuglog): add five-stage latency decomposition markers
- feat(dashboard): surface local rejects beyond the system tab
- feat(obs): flag rate-limited requests including in-stream 429
- feat(deploy): wait for in-flight requests before restart
- feat(gate): record latch transitions and expose token/waiter stats
- feat(obs): split pre-pipeline rejects by reason and ring recent events
- feat(devin): add no-progress deadline and post-stopReason tail grace
- feat(cmd): add badflags, end-hang and heartbeat stub scenarios
- feat(dashboard): unify hover tooltip styling across matrix and charts
- feat(dashboard): drop avg markLine and add req/min axis to traffic chart
- feat(cmd): extend upstreamstub with clean-eof, end-stream, bad-frame and stall scenarios
- feat(dashboard): layer RPS curve over instantaneous rate bars in traffic chart
- feat(dashboard): reshape health matrix into waveform bars with anchored tooltip
- feat(cmd): add upstreamstub connect-stream truncation injector
- feat(dashboard): poll live tabs at 1s and add 10s matrix with hover tooltip
- feat(obs): tighten request trend buckets to 10s granularity
- feat(dashboard): per-model health matrix, SLA KPIs, verdict, and retry chain
- feat(debuglog): attribute faults by owner, add SLA rate, retries, and until filter
- feat(scripts): add deploy-windows.ps1 for Windows console deployment
- feat(dashboard): surface gate state, config view/reload, and alert gaps
- feat(scripts): harden deploy UX with preflight, config bootstrap and upstream smoke
- feat(scripts): add smoke.sh for throwaway-instance verification
- feat(dashboard): report absent alias targets in apiStatus
- feat(dashboard): expose config view, hot reload, and gate stats
- feat(gate): persist cooldown latch and expose gate stats
Fixes
- fix(scripts): tag the CI-verified commit instead of current HEAD
- fix(build): compile SO_REUSEPORT sockopt only on unix
- fix(panel): quota period display and single-series bar chart
- fix(panel): realign active-request rows and keep window-lock hint
- perf(dashboard): gzip embedded statics and defer echarts
- fix(debuglog): tag RequestMeta fields with wire names
- fix(dashboard): serve static assets with ETag and private no-cache
- perf(debuglog): cache parsed index tail for ListRequests
- perf(debuglog): defer event projections to the log worker
- fix(dashboard): tag 429 samples with error stage and split local-gate rows
- fix(dashboard): keep chart tooltips alive and on-token during polling
- fix(responses): read reasoning_text parts and guard usage zero-overwrite
- fix(responses): omit reasoning_tokens when upstream reports none
- fix(api): emit placeholder text for unsupported document/file parts
- fix(api): demote id-less tool results to user text instead of rejecting
- fix(devin): extend protocol-error match to CodeInternal framing failures
- fix(devin): classify mid-payload envelope truncation as retryable transport fault
- fix(devin): classify connect-wrapped transport breaks as retryable transport faults
- fix(scripts): parse single-quoted yaml scalars and resolve latest tag via redirect
Other
- refactor(panel): drop redundant cost-tier column from model table
- chore(vscode): enable MPE preview env backed by gitignored .crossnote
- build(panel): replace stock echarts with a custom 630KB bundle
- refactor(panel): ES modules + morphdom rendering
- docs: add performance workflow guide
- build: add PGO profile sampled under stub load
- refactor(cmd): replace conctest with loadtest reporting TTFB and totals
- refactor(dashboard): consolidate font-size, line-height and radius into tokens
- refactor(dashboard): route remaining style literals through tokens and classes
- docs: reflect dual-layer watchdog and tail grace in stub matrix
- docs: document new upstreamstub scenarios and watchdog boundary
- chore: gitignore dated quota-probe outputs
- docs: cover rate-limit gate fields and panel hot reload in READMEs
- docs(config): tighten example defaults
- docs: document config endpoints, gate state file, and smoke script
- docs: record issue #2 root cause and premature flag semantics
- docs(app): note task-end false positive in prematureEndTurn
v0.7.0
Immutable
release. Only release title and notes can be modified.
devin-2api v0.7.0
Full Changelog: v0.6.0...v0.7.0
Features
- feat(app): record x-client-request-id in request projection
- feat(app): keep pre-stream failures a real HTTP status
- feat(devin): drip-latch rate gate with probe-driven unlatch
Fixes
- fix(responses): coalesce fragmented assistant turns in input decoding
- fix(app): deliver pre-stream 429s as stream error events on OpenAI surfaces
- fix(scripts): give mktemp templates explicit XXXXXX
- fix(release): preserve markdown headers in tag notes, fetch tag before reading body
Other
- docs(codex): recommend stream_max_retries for rate-limit waits
- docs(playbook): correct ccload protocol_transform_mode reload note
- docs: add docs/notes maintenance rules to AGENTS.md
- docs: unwrap hard-wrapped paragraphs and cover all platforms
- docs(scripts): point doc references at docs/ paths
- docs: publish living docs under docs/ and retire notes/ as archive
- build: bump go directive to 1.27.1
- docs: add toolchain guide for agents
- docs(skills): add release-runbook skill
- chore(github): add bug report template
- ci(release): assert linux binaries are static
- ci: add govulncheck security scanning workflow
- test(scripts): add offline self-test for release.sh
v0.6.0
Immutable
release. Only release title and notes can be modified.
devin-2api v0.6.0
Full Changelog: v0.5.0...v0.6.0
Features
- feat(main): resolve version via ldflags > module > vcs > embedded VERSION
- feat(scripts): add quota probe poller and billing-fit tool
- feat(release): ship windows assets as zip bundles
- feat(scripts): add systemd --user deploy path for linux
- feat(release): publish windows binaries and gate cross-platform builds
- feat(obs): report process CPU/RSS on Windows
- feat(config): discover Devin credentials on Windows AppData paths
Fixes
- fix(ci): goimports local-prefixes must be a list
- fix(obs): read FILETIME raw count for Windows process CPU
- fix(scripts): keep deploy progress off stdout and match strays by comm
- fix(dashboard): include cache_write in est_cost at input price
- fix(devin): cool down catalog fetch failures to stop retry-storm passthrough
- fix(devin): freeze token bucket during upstream rate-limit latch
Other
- chore: gitignore pycache, compile-check fit.py without writing pyc
- build(release): mechanize green-CI gate and build image from CI artifacts
- ci: add golangci-lint gate, deploy-asset assertions, shared setup-go
- refactor: satisfy minimal golangci-lint set
- docs(readme): give Linux/Windows copy-pasteable install commands
- docs(config): correct Windows token source — devin.exe ships inside Windsurf app
- docs: clarify windows token discovery and console kill semantics
- docs: add per-platform install table for service setup
- docs: document windows/linux credential paths and service setup
v0.5.0
Immutable
release. Only release title and notes can be modified.
Full Changelog: v0.4.0...v0.5.0
v0.4.0
Immutable
release. Only release title and notes can be modified.
Full Changelog: v0.3.1...v0.4.0
v0.3.1
Immutable
release. Only release title and notes can be modified.
Full Changelog: v0.1.0...v0.3.1
v0.1.0
Immutable
release. Only release title and notes can be modified.
Full Changelog: https://github.com/WncFht/devin2api/commits/v0.1.0
Full Changelog: https://github.com/WncFht/devin2api/commits/v0.1.0