Skip to content

Commit 771567a

Browse files
release: jaclang 0.13.3, jac-scale 0.2.11, jaseci 2.3.10 (#5380)
## Release ### jaclang - Version: 0.13.2 → 0.13.3 - Bump type: patch ### jac-scale - Version: 0.2.10 → 0.2.11 - Bump type: patch ### jaseci - Version: 2.3.9 → 2.3.10 - Bump type: patch - Updated internal dependency versions in dependent packages - Updated release notes Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
1 parent 1970e59 commit 771567a

File tree

5 files changed

+14
-10
lines changed

5 files changed

+14
-10
lines changed

docs/docs/community/release_notes/jac-scale.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@
22

33
This document provides a summary of new features, improvements, and bug fixes in each version of **Jac-Scale**. For details on changes that might require updates to your existing code, please refer to the [Breaking Changes](../breaking-changes.md) page.
44

5-
## jac-scale 0.2.11 (Unreleased)
5+
## jac-scale 0.2.12 (Unreleased)
6+
7+
## jac-scale 0.2.11 (Latest Release)
68

79
- **Fix: Sandbox status returns stale RUNNING for dead pods**: `KubernetesSandbox.status()` was returning the cached registry state (often `RUNNING`) when `read_namespaced_pod_status()` threw an exception (pod deleted or unreachable). This caused callers to believe the sandbox was still alive, preventing recovery. Now returns `STOPPED` when the pod query fails so dead pods are detected immediately.
810
- **Fix: Admin portal build fails from PyPI install**: `jac.toml` and `styles/*.css` were excluded from the wheel because `pyproject.toml` package-data only included `*.jac` files. The admin portal's `jac build` command needs these files to discover the project config and generate Tailwind CSS output.
911

10-
## jac-scale 0.2.10 (Latest Release)
12+
## jac-scale 0.2.10
1113

1214
- **Dev Mode: API Docs accessible from client URL**: In dev mode (`jac start --dev`), the FastAPI Swagger UI (`/docs`) and OpenAPI spec (`/openapi.json`) are now proxied through the Vite dev server, so you can browse your API docs at the same URL as your app without switching ports.
1315
- **Security: FastAPI docs disabled in production**: `/docs`, `/redoc`, and `/openapi.json` are no longer exposed in production. They are only available in dev mode.

docs/docs/community/release_notes/jaclang.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,17 @@
22

33
This document provides a summary of new features, improvements, and bug fixes in each version of **Jaclang**. For details on changes that might require updates to your existing code, please refer to the [Breaking Changes](../breaking-changes.md) page.
44

5-
## jaclang 0.13.3 (Unreleased)
5+
## jaclang 0.13.4 (Unreleased)
6+
7+
## jaclang 0.13.3 (Latest Release)
68

79
- **ES Codegen: `jid()` Builtin for Unified Node Identity**: Added `jid()` as a builtin function in the ES codegen, providing a consistent API for accessing node identity across both server and client code. On the client side, `jid(node)` emits `node._jac_id` in the generated JavaScript. The previous implicit `.id` alias (`this.id = this._jac_id`) on generated node class constructors has been removed in favor of the explicit `jid()` call.
810
- **Fix: Windows Client Bundle Compilation**: Fixed client bundle compilation failing on Windows with `Client function 'app' not found` error. Added cross-platform path normalization for module hub lookups to handle Windows case-insensitivity and path separator differences. Extracted helper functions to the client bundle module for consistent path handling across the bundle builder and module introspector. The ES pass is now explicitly triggered when generated JavaScript is empty, ensuring code generation completes on Windows where the pass may be skipped during initial compilation due to re-entrancy guards.
911
- **Fix: Windows Console Unicode Encoding**: Fixed codec encoding crashes on Windows cmd/PowerShell when printing Unicode characters (emojis, symbols). The console now detects Windows legacy terminals and replaces unencodable characters with safe fallbacks. Windows Terminal continues to use full Unicode support.
1012
- **Fix: JIR Cache Preserves `code_context` for `.cl.jac` / `.sv.jac` / `.na.jac` Modules**: The JIR binary cache now serializes the per-node `code_context` field (`CLIENT`, `SERVER`, `NATIVE`) via a new overlay byte (bit 3 of overlay flags). Previously, `code_context` was a `postinit` field not included in the JIR spec, so it always defaulted to `SERVER` on cache reload. This caused `.cl.jac` modules loaded from cache as transitive dependencies to lose their `CLIENT` context, making the ES code generator filter out all statements and produce empty JavaScript, breaking the admin UI and other client builds on second compilation.
1113
- **Fix: ES Codegen Await Precedence and List Concatenation**: Fixed two ECMAScript code generation bugs affecting full-stack apps. (1) **Await in member access**: `AwaitExpression` used as the object of a `MemberExpression` (e.g., `(await fn()).map(...)`) was not parenthesized, causing `.map()` to bind to the Promise instead of the resolved value. The ES unparser now parenthesizes `AwaitExpression`, `YieldExpression`, and other low-precedence expressions when they appear as member access targets. (2) **List `+` in impl files**: When the type evaluator cannot determine the operand type (common in `.impl.jac` files), `list + [item]` fell through to the generic `BinaryExpression('+')` handler, producing JS string concatenation instead of array concatenation. A new heuristic in `exit_binary_expr` detects `ArrayExpression` operands and emits `[...left, ...right]` spread syntax as a safe fallback.
1214

13-
## jaclang 0.13.2 (Latest Release)
15+
## jaclang 0.13.2
1416

1517
- **Typed Interop: dict[K,V] Return Hydration and Walker Spawn Serialization**: The ES codegen now supports `dict[str, T]` return types with automatic value hydration (`Object.fromEntries(Object.entries(...).map(...))`), wraps `list[T]` returns at call sites with `.map(x => T.__from_wire(x))`, and serializes typed walker `has` fields with `__to_wire()` when spawning from client code. The interop analysis pass also now correctly extracts multi-parameter subscript types (e.g., `dict[str, Metric]` was previously reduced to bare `dict`).
1618
- **Fix: ES Codegen RecursionError on Walker/Typed Arg Fixtures**: Guarded an unprotected `get_type_evaluator()` call in `exit_func_call` that caused infinite recursion when compiling fixtures with walker spawns or typed function arguments.

jac-scale/pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
[project]
22
name = "jac-scale"
3-
version = "0.2.10"
3+
version = "0.2.11"
44
description = ""
55
authors = [{ name = "Jason Mars", email = "jason@mars.ninja" }]
66
readme = "README.md"
77
requires-python = ">=3.12"
88
dependencies = [
99
"rich>=13.0.0",
10-
"jaclang>=0.13.2",
10+
"jaclang>=0.13.3",
1111
"python-dotenv>=1.2.1,<2.0.0",
1212
"docker>=7.1.0,<8.0.0",
1313
"kubernetes>=34.1.0,<35.0.0",

jac/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "jaclang"
3-
version = "0.13.2"
3+
version = "0.13.3"
44
description = "Jac programming language - Python-like syntax, compiles to Python bytecode, JavaScript, and native machine code with novel constructs for AI-integrated programming."
55
authors = [{ name = "Jason Mars", email = "jason@mars.ninja" }]
66
maintainers = [{ name = "Jason Mars", email = "jason@mars.ninja" }]

jaseci-package/pyproject.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "jaseci"
3-
version = "2.3.9"
3+
version = "2.3.10"
44
description = "Jaseci - A complete AI-native programming ecosystem with Jac language, LLM integration, and full-stack web apps"
55
authors = [{name = "Jason Mars", email = "jason@mars.ninja"}]
66
maintainers = [{name = "Jason Mars", email = "jason@mars.ninja"}]
@@ -22,10 +22,10 @@ keywords = [
2222
]
2323
requires-python = ">=3.11"
2424
dependencies = [
25-
"jaclang>=0.13.2",
25+
"jaclang>=0.13.3",
2626
"byllm>=0.6.1",
2727
"jac-client>=0.3.9",
28-
"jac-scale>=0.2.9",
28+
"jac-scale>=0.2.11",
2929
"jac-super>=0.1.8",
3030
"jac-mcp>=0.1.8",
3131
]

0 commit comments

Comments
 (0)