Skip to content

Version Packages#187

Open
github-actions[bot] wants to merge 1 commit into
mainfrom
changeset-release/main
Open

Version Packages#187
github-actions[bot] wants to merge 1 commit into
mainfrom
changeset-release/main

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot commented Jun 2, 2026

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@dawn-ai/cli@0.3.0

Minor Changes

  • 8133553: Add opt-in conversation summarization (Phase 3 sub-project 6b). When a thread's history exceeds a token threshold, the agent is fed a condensed view — a running summary of older turns plus the most recent turns verbatim — while the full history stays intact in the checkpoint. This is non-destructive: summarization runs as a LangGraph preModelHook that returns llmInputMessages for the turn only and never rewrites saved messages, so GET /threads/:id/state, resume, and restart always see the complete history (and there is no tool-call/result pairing hazard).

    Enable it in dawn.config.ts:

    export default {
      summarization: {
        enabled: true, // default false
        maxTokens: 12_000, // threshold over which older turns are summarized
        keepRecentTurns: 6, // most-recent turns kept verbatim
        // model defaults to the route's model
        // tokenCounter defaults to a lazy gpt-tokenizer (o200k_base) counter
        // summarize defaults to a built-in single-LLM-call running-summary fold
      },
    };

    Both the token counter and the summarizer are pluggable (tokenCounter, summarize). The running summary is cached in agent state and refreshed incrementally — each turn folds only the newly-aged messages, so cost stays bounded. The turn-boundary split is pairing-safe (a tool-call message is never separated from its results). When summarization is disabled (the default), behavior is unchanged and gpt-tokenizer is never loaded. If the summarizer call fails on a given turn, the agent falls back to the full history for that turn rather than failing the run.

  • 027b1cc: Add tool-output offloading. When a tool returns output larger than toolOutput.offloadThresholdChars (default 40,000), the full payload is written to workspace/tool-outputs/ and the in-context ToolMessage is replaced with a preview+pointer stub; the agent retrieves the full content with the existing readFile tool (which bypasses the size cap for tool-outputs/ paths). Active automatically when a workspace exists. The directory is bounded by a size + TTL cap (defaults 256MB / 3h) with throttled evict-on-write and LRU-by-access eviction (readFile bumps mtime for tool-outputs/ files). Large content never enters message state, so there is no tool-call/result pairing hazard. Configurable via dawn.config.ts toolOutput. The FilesystemBackend interface gains optional statFile/removeFile/touchFile/mkdir methods and an optional per-call maxBytes override on readFile.

Patch Changes

  • 55b69f0: Fix tool-output offloading so retrieval tools are exempt. Previously the workspace readFile tool — the very tool the agent uses to read back an offloaded output — had its own (large) result offloaded again, replacing it with a second pointer stub. The agent could never see the retrieved content. Retrieval/inspection tools (readFile, listDir) are now never offloaded; the new dawn.config.ts toolOutput.noOffloadTools option adds further exemptions (merged with the always-exempt built-ins). Found by a live-API smoke test.
  • Updated dependencies [30db6ed]
  • Updated dependencies [55b69f0]
  • Updated dependencies [2e3bc8d]
  • Updated dependencies [8133553]
  • Updated dependencies [027b1cc]
    • @dawn-ai/langchain@0.3.0
    • @dawn-ai/core@0.3.0
    • @dawn-ai/langgraph@0.3.0
    • @dawn-ai/permissions@0.1.8
    • @dawn-ai/sqlite-storage@0.2.0

@dawn-ai/core@0.3.0

Minor Changes

  • 8133553: Add opt-in conversation summarization (Phase 3 sub-project 6b). When a thread's history exceeds a token threshold, the agent is fed a condensed view — a running summary of older turns plus the most recent turns verbatim — while the full history stays intact in the checkpoint. This is non-destructive: summarization runs as a LangGraph preModelHook that returns llmInputMessages for the turn only and never rewrites saved messages, so GET /threads/:id/state, resume, and restart always see the complete history (and there is no tool-call/result pairing hazard).

    Enable it in dawn.config.ts:

    export default {
      summarization: {
        enabled: true, // default false
        maxTokens: 12_000, // threshold over which older turns are summarized
        keepRecentTurns: 6, // most-recent turns kept verbatim
        // model defaults to the route's model
        // tokenCounter defaults to a lazy gpt-tokenizer (o200k_base) counter
        // summarize defaults to a built-in single-LLM-call running-summary fold
      },
    };

    Both the token counter and the summarizer are pluggable (tokenCounter, summarize). The running summary is cached in agent state and refreshed incrementally — each turn folds only the newly-aged messages, so cost stays bounded. The turn-boundary split is pairing-safe (a tool-call message is never separated from its results). When summarization is disabled (the default), behavior is unchanged and gpt-tokenizer is never loaded. If the summarizer call fails on a given turn, the agent falls back to the full history for that turn rather than failing the run.

  • 027b1cc: Add tool-output offloading. When a tool returns output larger than toolOutput.offloadThresholdChars (default 40,000), the full payload is written to workspace/tool-outputs/ and the in-context ToolMessage is replaced with a preview+pointer stub; the agent retrieves the full content with the existing readFile tool (which bypasses the size cap for tool-outputs/ paths). Active automatically when a workspace exists. The directory is bounded by a size + TTL cap (defaults 256MB / 3h) with throttled evict-on-write and LRU-by-access eviction (readFile bumps mtime for tool-outputs/ files). Large content never enters message state, so there is no tool-call/result pairing hazard. Configurable via dawn.config.ts toolOutput. The FilesystemBackend interface gains optional statFile/removeFile/touchFile/mkdir methods and an optional per-call maxBytes override on readFile.

Patch Changes

  • 55b69f0: Fix tool-output offloading so retrieval tools are exempt. Previously the workspace readFile tool — the very tool the agent uses to read back an offloaded output — had its own (large) result offloaded again, replacing it with a second pointer stub. The agent could never see the retrieved content. Retrieval/inspection tools (readFile, listDir) are now never offloaded; the new dawn.config.ts toolOutput.noOffloadTools option adds further exemptions (merged with the always-exempt built-ins). Found by a live-API smoke test.
  • 2e3bc8d: Fix tool-input schema extraction for standalone literal types. A single string-literal type (e.g. a discriminated-union discriminant like by: "date") was not recognized as an enum (only multi-member literal unions were), so it fell through to object extraction and was misread as an object carrying String.prototype methods (charAt, toString, …). This produced a bogus schema that rejected the correct argument, breaking every discriminated/object-union tool parameter end-to-end. Standalone string/number/boolean literals now extract correctly, and object extraction is guarded to genuine object types. Found by a live-API smoke test.
  • Updated dependencies [027b1cc]
    • @dawn-ai/workspace@0.2.0
    • @dawn-ai/sdk@0.3.0
    • @dawn-ai/permissions@0.1.8
    • @dawn-ai/sqlite-storage@0.2.0

@dawn-ai/langchain@0.3.0

Minor Changes

  • 8133553: Add opt-in conversation summarization (Phase 3 sub-project 6b). When a thread's history exceeds a token threshold, the agent is fed a condensed view — a running summary of older turns plus the most recent turns verbatim — while the full history stays intact in the checkpoint. This is non-destructive: summarization runs as a LangGraph preModelHook that returns llmInputMessages for the turn only and never rewrites saved messages, so GET /threads/:id/state, resume, and restart always see the complete history (and there is no tool-call/result pairing hazard).

    Enable it in dawn.config.ts:

    export default {
      summarization: {
        enabled: true, // default false
        maxTokens: 12_000, // threshold over which older turns are summarized
        keepRecentTurns: 6, // most-recent turns kept verbatim
        // model defaults to the route's model
        // tokenCounter defaults to a lazy gpt-tokenizer (o200k_base) counter
        // summarize defaults to a built-in single-LLM-call running-summary fold
      },
    };

    Both the token counter and the summarizer are pluggable (tokenCounter, summarize). The running summary is cached in agent state and refreshed incrementally — each turn folds only the newly-aged messages, so cost stays bounded. The turn-boundary split is pairing-safe (a tool-call message is never separated from its results). When summarization is disabled (the default), behavior is unchanged and gpt-tokenizer is never loaded. If the summarizer call fails on a given turn, the agent falls back to the full history for that turn rather than failing the run.

  • 027b1cc: Add tool-output offloading. When a tool returns output larger than toolOutput.offloadThresholdChars (default 40,000), the full payload is written to workspace/tool-outputs/ and the in-context ToolMessage is replaced with a preview+pointer stub; the agent retrieves the full content with the existing readFile tool (which bypasses the size cap for tool-outputs/ paths). Active automatically when a workspace exists. The directory is bounded by a size + TTL cap (defaults 256MB / 3h) with throttled evict-on-write and LRU-by-access eviction (readFile bumps mtime for tool-outputs/ files). Large content never enters message state, so there is no tool-call/result pairing hazard. Configurable via dawn.config.ts toolOutput. The FilesystemBackend interface gains optional statFile/removeFile/touchFile/mkdir methods and an optional per-call maxBytes override on readFile.

Patch Changes

  • 30db6ed: Offloaded tool-output filenames are now deterministic — keyed on the originating tool_call_id (with a content-hash fallback when absent) instead of timestamp+random. This makes offloaded paths stable and traceable and enables deterministic agent e2e tests. The openai chat model now also honors OPENAI_BASE_URL, allowing a local mock provider (used by the new CI-safe aimock-based agent e2e regression tests for the discriminated-union tool-input and tool-output-offload-retrieval paths).
  • Updated dependencies [55b69f0]
  • Updated dependencies [2e3bc8d]
  • Updated dependencies [8133553]
  • Updated dependencies [027b1cc]
    • @dawn-ai/core@0.3.0
    • @dawn-ai/workspace@0.2.0
    • @dawn-ai/sdk@0.3.0

@dawn-ai/workspace@0.2.0

Minor Changes

  • 027b1cc: Add tool-output offloading. When a tool returns output larger than toolOutput.offloadThresholdChars (default 40,000), the full payload is written to workspace/tool-outputs/ and the in-context ToolMessage is replaced with a preview+pointer stub; the agent retrieves the full content with the existing readFile tool (which bypasses the size cap for tool-outputs/ paths). Active automatically when a workspace exists. The directory is bounded by a size + TTL cap (defaults 256MB / 3h) with throttled evict-on-write and LRU-by-access eviction (readFile bumps mtime for tool-outputs/ files). Large content never enters message state, so there is no tool-call/result pairing hazard. Configurable via dawn.config.ts toolOutput. The FilesystemBackend interface gains optional statFile/removeFile/touchFile/mkdir methods and an optional per-call maxBytes override on readFile.

create-dawn-ai-app@0.3.0

Patch Changes

  • @dawn-ai/devkit@0.3.0

@dawn-ai/langgraph@0.3.0

Patch Changes

  • @dawn-ai/sdk@0.3.0

@dawn-ai/vite-plugin@0.3.0

Patch Changes

  • Updated dependencies [55b69f0]
  • Updated dependencies [2e3bc8d]
  • Updated dependencies [8133553]
  • Updated dependencies [027b1cc]
    • @dawn-ai/core@0.3.0

@dawn-ai/config-biome@0.3.0

@dawn-ai/config-typescript@0.3.0

@dawn-ai/devkit@0.3.0

@dawn-ai/sdk@0.3.0

@dawn-example/chat-server@0.0.2

Patch Changes

  • Updated dependencies [30db6ed]
  • Updated dependencies [55b69f0]
  • Updated dependencies [2e3bc8d]
  • Updated dependencies [8133553]
  • Updated dependencies [027b1cc]
    • @dawn-ai/langchain@0.3.0
    • @dawn-ai/core@0.3.0
    • @dawn-ai/cli@0.3.0
    • @dawn-ai/sdk@0.3.0

@github-actions github-actions Bot requested a review from blove as a code owner June 2, 2026 23:30
@vercel
Copy link
Copy Markdown

vercel Bot commented Jun 2, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
dawnai Ready Ready Preview, Comment Jun 4, 2026 9:26pm

Request Review

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants