Repository navigation
Releases: dkedar7/langstage-vscode
Releases · dkedar7/langstage-vscode
Release list
Extension 0.6.5
Works with any sidecar; needs no new one.
Fixed
- A tool card stops spinning when its turn ends (gh #166). A turn that ended without
the call'stool_end(Stop during a slow tool:tool_start → cancelled → turn_end; a
tool that raised:tool_start → error → turn_end) left the card on "Running…" for
good, and a reload replayed it. When the turn ends, a call still open is now closed:
after a failed turn it fails with the turn's error, otherwise it shows a new
"did not finish" mark and "Stopped before it finished.". A restored transcript settles
the same way. The call a turn paused in for an approval stays open, since the resumed
turn completes it, unless the agent restarts before it's answered. - The editor honors
[workspace] rootandLANGSTAGE_WORKSPACE_ROOT(gh #165). The
extension launched the sidecar with--workspace <folder>and overwrote
LANGSTAGE_WORKSPACE_ROOT, so a root set inlangstage.tomlor the environment was
dropped without notice, and the editor ran the agent somewhere other than the
--selfcheck/--messagepreflight did. The sidecar now starts in the workspace
folder with no flag and the environment as it is: the folder is the default root, and
langstage.toml(found from the folder up) andLANGSTAGE_WORKSPACE_ROOTwin over it,
as documented. With neither set, nothing changes.
Extension 0.6.4
Works with any sidecar; 0.5.37 is recommended (see below).
Fixed
- An approved tool call doesn't spin forever. After you approve a paused tool call,
the resumed turn announces that call again, with the same id, before its result.
The panel added a second card for it, the result completed only that one, and the
first card kept spinning. The panel now keeps the one card and completes it.
Extension 0.6.3
Needs no new sidecar. The Python package is unchanged at 0.5.36.
Fixed
- The store page has a README (gh #160). The VSIX shipped no
README.mdor
CHANGELOG.md(extension/had neither, andvscedoesn't pick up the repo-root
README), so the Details page on the VS Code Marketplace, Open VSX and the editor's
Extensions view was blank, and a store-only user never learned the extension needs
pip install langstage-vscode. There is now anextension/README.mdwritten for
extension users: the two-part install withlangstage.pythonPath, Try the demo,
langstage.agentSpec, the settings and commands, what the panel does, and links to the
repo and the docs, all with absolute URLs. The VSIX now carries the
Microsoft.VisualStudio.Services.Content.Detailsasset.extension/CHANGELOG.mdholds
the extension-only history (0.3.1 to 0.6.3) for the store's Changelog tab; each
extension release now adds its entry there as well as here. - A missing sidecar names the fix (gh #160). When
langstage.pythonPath's interpreter
has no langstage-vscode, startup failed with
sidecar exited before it was ready: ModuleNotFoundError: No module named langstage_vscode.
SidecarClientnow recognizesNo module named langstage_vscodeand fails with a
SidecarNotInstalledError. Its message says the package isn't installed in that
interpreter and ends with<python> -m pip install langstage-vscode(quoted, with
PowerShell's&on Windows, like the outdated-sidecar warning's command). The status
carries the command asinstallCommand, and the panel shows a Copy install command
button next to Open settings.@langstageshows the same message. A different missing
module, such as one of your agent's dependencies, still shows the last stderr line.
Docs
- The README no longer says Marketplace and Open VSX publishing "come next": the extension
is published on both. The release steps mentionextension/CHANGELOG.md.
Tests
- CI's
extension-buildjob fails if the built VSIX lacks the Details or Changelog
asset.src/test/storePage.test.tschecks that the store README documents every
setting and palette command inpackage.json, uses only absolute links, and that
extension/CHANGELOG.mdhas an entry for thepackage.jsonversion.
Extension 0.6.2
Needs no new sidecar, but expects langstage-vscode 0.5.35 or newer and warns about an
older one.
Added
- The extension checks which sidecar it spawned (gh #89). It reads the handshake in the
sidecar'sreadyframe (sidecar 0.5.35) before it sends a command, inSidecarClient,
so the panel and@langstageboth get it:- A newer protocol is refused. A sidecar whose
protocolis newer than the one this
extension supports (1) could have removed or redefined a command it sends, so it
doesn't start: the status isfailedwith, for example, "The langstage-vscode sidecar
in python (0.7.0) speaks protocol 2, but this version of the LangStage extension
supports protocol 1. Update the LangStage extension.", and the process is stopped. - An older sidecar gets a warning. A sidecar older than 0.5.35, or one that doesn't
report its version (every release before 0.5.35), still runs, but a warning names the
interpreter and its version and offers a Copy command button for
<python> -m pip install -U langstage-vscode. It shows once per interpreter per
activation, however many sidecars the panel and@langstagestart. cancelonly where it is served. Stop sendscancelwhen the sidecar lists it in
itscapabilities, or lists none (a sidecar older than 0.5.35, which serves it: no
change there). A sidecar that lists capabilities withoutcancelcouldn't stop the
turn, so Stop ends the turn in the extension and stops that sidecar process instead.SidecarClientexposes the handshake asinfoand on itsreadystatus, next to
checkpointer, and takes anonReadycallback.
- A newer protocol is refused. A sidecar whose
Extension 0.6.1
Changed
- The "may not remember" note shows only when memory was lost (gh #152). The panel marks
a restored conversation (and every sidecar restart) with "The agent may not remember the
conversation above". It now reads the checkpointer the sidecar reports in itsready
frame (sidecar 0.5.34) and leaves the note out when it is durable (SqliteSaver,
PostgresSaver, ...), since that agent still has the conversation. With an in-memory
checkpointer, before the sidecar is ready, or with an older sidecar that doesn't report
one, the note is shown as before.SidecarClient'sreadystatus and the panel's
statusmessage carry the newcheckpointerfield.
LangStage for VS Code 0.6.0 — standalone panel (preview)
A standalone LangStage panel that works in any VS Code-based editor — VS Code (no Copilot sign-in needed), Cursor, VSCodium, Windsurf — alongside the existing @langstage Copilot chat participant.
- Streaming replies, tool-call cards, reasoning, todos/plan
- Approval cards: Approve / Reject (reason) / Respond / Edit
- Multiple conversations, each with its own agent session, saved per workspace
- Requires the Python sidecar:
pip install langstage-vscode(0.5.33+)
Install: download langstage-vscode-0.6.0.vsix below → in your editor run Extensions: Install from VSIX… (or code --install-extension langstage-vscode-0.6.0.vsix). Marketplace / Open VSX listings are coming.
langstage-vscode 0.5.11
Added
- A one-shot
--message/--promptflag: drive a single turn and print the reply, without hand-crafting NDJSON (gh #48).--selfcheckvalidates the runtime with a fixed internal ping and prints only anOK:/FAIL:verdict; seeing your agent's actual answer to a prompt of your choosing previously meant driving the stdio protocol by hand.langstage-vscode-sidecar --agent ./my.py:graph --message "summarize the repo"now loads the agent, drives one turn, prints the assembled reply, and exits0(clean) / non-zero (on an error frame) — noshutdownhandshake. Pair with--jsonto emit the rawevent_to_dictframes for scripting. Honors the same config chain and--workspaceas a normal run.
langstage-vscode 0.5.10
Fixed
- A spec that loads a non-runnable object crashed the sidecar with no
errorframe (gh #46). When--agent <spec>loaded successfully but resolved to something that isn't a runnableCompiledGraph(a factory function, an uncompiledStateGraph, a bare value), the sidecar emitted{"type": "ready"}then died with an uncaughtAttributeErrorfrom deep inside ag-ui — never emitting the documented{"type": "error", ...}frame. The runtime path now applies the same runnable-graph guard--selfcheckuses and surfaces the identical actionable message; the check is shared via one helper so the two paths can't drift, and the agent-buildexceptwas broadened so any build failure degrades to an error frame instead of a crash.
v0.5.9
Fixed
- The interrupt card now names the real action instead of "an action" (gh #44). The extension rendered the HITL approval card from
action_requests[0].tool, but the sidecar emits the standardHumanInterruptaction request as{"action": <tool>, "args": {...}}(keyaction, nevertool) — so the card always fell back to "wants to run an action". It now reads.action(fallback.tool). The masking sidecar test that used a fictional{"tool": ...}shape now uses the realHumanInterruptshape.
v0.5.8
Fixed
--show-configno longer crashes on a cp1252 stdout when a resolved value has a non-Latin-1 character (gh #42). The VS Code extension spawns the sidecar over a cp1252 (strict) pipe, so a resolved value with a CJK/Cyrillic char (agent spec, or a project path under a non-Latin-1 folder) madeprint(cfg.describe(...))die withUnicodeEncodeErrorand emit nothing. It now degrades unrepresentable characters to escapes instead of crashing; a UTF-8 stdout keeps full fidelity.
