Skip to content

Releases: dkedar7/langstage-jupyter

langstage-jupyter 0.6.11

Choose a tag to compare

@dkedar7 dkedar7 released this 10 Jul 03:07
be66608

Fixed

  • The headline langstage-jupyter launcher died immediately when run as root (gh #64). jupyter_server refuses to boot as root without --allow-root, so the primary zero-config command exited 1 (after the extension loaded) on the jupyter/* Docker images, Binder, CI runners, K8s notebook pods, and devcontainers — the exact root environments --serve-check was hardened for (gh #58). The launch path now mirrors that treatment: when os.geteuid() == 0 and the user hasn't already passed it, it injects --allow-root (same rationale as #58 — a token-gated, localhost server). A non-root laptop is unchanged, and an explicit user --allow-root isn't duplicated.

v0.6.10

Choose a tag to compare

@dkedar7 dkedar7 released this 08 Jul 13:01
4308995

Fixed

  • The launcher now propagates JupyterLab's exit code (gh #62). langstage-jupyter ran jupyter lab via subprocess.run(...) but discarded the return code, so a startup failure (port in use, a fatal config error, the root guard) still exited 0 — masking the failure from set -e, CI steps, systemd, healthchecks, and langstage-jupyter && …. It now exits with the child's return code.

v0.6.9

Choose a tag to compare

@dkedar7 dkedar7 released this 08 Jul 02:12
2342488

Fixed

  • The sidebar status no longer shows 🟢 "ready" for an agent that can't actually run a turn (gh #60). Readiness was agent is not None, but the bundled default agent's model is built lazily — it constructs fine with no ANTHROPIC_API_KEY and only fails at the first API call — so a common first-run (no key) lit green, then failed on the first message with a raw provider auth error. /health now returns a ready flag gated on the agent being a runnable graph and (for the default agent) its provider key being present, and the sidebar shows a distinct 🟠 needs_setup state with an actionable tooltip (e.g. "ANTHROPIC_API_KEY is not set — the first turn will fail") instead of green. A custom/BYO agent's credentials remain the operator's concern.

v0.6.8

Choose a tag to compare

@dkedar7 dkedar7 released this 06 Jul 11:17
954aa3f

Fixed

  • --serve-check now works when running as root — i.e. in CI and Docker, the environments it targets (gh #58). The spawned jupyter_server now passes --ServerApp.allow_root=True (safe: an ephemeral, token-gated, localhost-only smoke server), so it no longer hits Jupyter's root guard and exits before serving. And when the server exits before it is ready, the verdict now includes the server's own last output lines (the real cause) instead of a bare exit code.

v0.6.7

Choose a tag to compare

@dkedar7 dkedar7 released this 05 Jul 15:06
c1bfe18

Added

  • langstage-jupyter --serve-check — a headless HTTP smoke test of the deployed extension (gh #56). The HTTP counterpart of --verify: where --verify proves the agent object completes a turn, --serve-check boots the server extension headlessly, polls /langstage-jupyter/health until the agent is loaded, POSTs one turn to /langstage-jupyter/chat, and asserts the SSE stream yields a non-empty chunk and completes — catching route/registration/handler regressions (e.g. the #53 empty-body 500) that --verify structurally can't. Exits 0/1; defaults to the keyless demo agent (CI-safe) and honors -a to smoke-test a real agent. --smoke is an alias.

Docs

  • Documented both preflights (--verify, --serve-check) and the extension's served routes (/<base_url>langstage-jupyter/{health,chat,resume,reload,cancel}) in the README.

v0.6.6

Choose a tag to compare

@dkedar7 dkedar7 released this 05 Jul 03:37
5117615

Changed

  • The chat sidebar is now branded "LangStage", not "Deep Agents" (dogfood). The JupyterLab left-rail tab tooltip, launcher entry, and default agent-name fallback all said "Deep Agents" (the pre-rename name); they now read "LangStage". Command IDs and CSS classes (deepagents:open-chat, .deepagents-*) are unchanged, so nothing that targets them breaks.

Docs

  • Refreshed the README header to a langstage-jupyter SVG banner (was a remote cover.png labelled "DeepAgent Lab").

v0.6.5

Choose a tag to compare

@dkedar7 dkedar7 released this 04 Jul 15:13
7ed4499

Fixed

  • Empty POST body to /chat, /resume, /cancel returned HTTP 500 instead of 400 (gh #53). Jupyter Server's get_json_body() returns None for an empty body (only invalid JSON raises), so the handlers hit None.get(...) → unhandled AttributeError → 500. All three now guard data is None and raise HTTPError(400), matching the adjacent malformed-input handling.

v0.6.4

Choose a tag to compare

@dkedar7 dkedar7 released this 03 Jul 23:02
4339426

Changed

  • Workspace root now flows through the shared core.apply_workspace() / core.workspace_root() source of truth (ADR 0005). The extension used to apply the workspace via a bespoke dance — a mutable config.WORKSPACE_ROOT global, manual os.environ writes, and set_root_dir() mutating that global to re-root (the code behind #45/#36). Now agent_wrapper calls apply_workspace() (pinned root at init, else JupyterLab's live launch dir per message) and the default agent reads workspace_root() — one source the env, the backend, and the rebuilt agent all agree on. Behavior preserved (pinned still wins; re-root still happens on a real change); the published env value is now the resolved absolute root. Requires langstage-core>=1.0.7.

Fourth surface migration of the consolidated workspace (cli / vscode / hermes / jupyter).

v0.6.3

Choose a tag to compare

@dkedar7 dkedar7 released this 03 Jul 19:41
91bd330

Added

  • langstage-jupyter --verify: preflight the agent with one real turn (ADR 0004). The extension previously had no real readiness check — /health only reports whether the agent object is non-None. --verify resolves the same spec the extension would run, loads it, and runs ONE real turn through the shared langstage-core primitive core.verify(), exiting 0 clean / non-zero otherwise (use --demo for a keyless check). Catches a missing key, broken tool, or bad graph before you launch. Requires langstage-core>=1.0.6.

Third surface adoption of the consolidated preflight, after cli --verify and web check --live.

langstage-jupyter 0.6.2

Choose a tag to compare

@dkedar7 dkedar7 released this 03 Jul 13:40
ccf35b1

Fixed #48: the 0.6.1 wheel bundled a stale labextension reporting v0.6.0 (0.6.1 was a Python-only fix and the build hook skipped the JS rebuild). Clean-rebuilt so the bundled labextension version matches the package. No functional change.