Stay up to date with the latest Pika Framework releases, new features, and important changes.
Current Version
Section titled “Current Version”What's New in 0.29.0
Section titled “What's New in 0.29.0”- Carry edits to seam-less framework files across
pika syncas patches. When you need to customize a framework-owned file that has no extension point, capture the edit as apika-patches/NNN-*.patchinstead of orphaning the whole file from upstream updates. See the Patch Overlay guide. pika capture-patch [file]captures a working-tree edit (auto-detecting the changed file). It doesn't revert — commit the custom file + the patch together, so the repo actually works between syncs; the patch re-derives your change after a sync overwrites the file.pika syncreapplies patches (viagit apply --3way) after overwriting framework files. A failed reapply stops the sync (non-zero exit, conflict markers) so a customization is never lost silently — that's the cue to refresh the patch or promote the change to a real seam and delete it.pika sync --check-collisionsis a read-only CI gate that flags any framework file edited without a covering patch (it would be overwritten on the next sync). Protected files and sync PRs are exempt.
Why now: downstream consumers need to customize framework files (e.g. jest.config.js) that have no seam, and whole-file protection silently freezes those files from all upstream updates. Patches keep the edit and the upstream stream.
Latest Stable: 0.29.0 (June 4, 2026)
What's New in 0.28.1
Section titled “What's New in 0.28.1”- Agents resolve relative dates against the real current date. The Strands converse handler now puts the current date on the user turn, so "year to date", "this month", "last 30 days", etc. resolve against today instead of a guessed year. Previously
currentDatewas delivered only viapromptSessionAttributes(which reach tool Lambdas, not the model), so date-relative queries could land in the wrong year. The date is appended to the user turn rather than the system prompt — preserving the Bedrock prompt cache and keeping thesystem_prompt == base_prompthandler/collaborator contract — and reaches both the supervisor and its collaborators (via Swarm context).
Why now: downstream consumers' agents were resolving "year to date" to a prior full year in production.
What's New in 0.28.0
Section titled “What's New in 0.28.0”- Session-source ordering (
SessionSource.position) — a session source can now render its sidebar group above or below the built-in "My Chats" group via a new additiveposition?: 'before' | 'after'field (default'before').SessionSourcelives in the sync-protectedapps/pika-chat/src/lib/custom/additional-session-sources.ts, so add the field to your own copy when you adopt it (the framework readssource.position, defaulting to'before'). - Fixed — clicking a session in a custom session source opens it.
setCurrentSessionByIdnow resolves sessions from registered session sources, not just the user's own chats; an unknown id no longer silently starts a new chat. - Fixed — the sidebar chat list scrolls and its scrollbar is usable. Removed the sidebar "rail" that overlapped the scrollbar and intercepted click/drag. The sidebar's header collapse icon is now the toggle in every mode (the chat titlebar re-opens it when collapsed). The reusable
pika-uxSidebar.Railcomponent is unchanged. - Fixed —
svelte-checkbuild blocker on#currentSessionIsReadOnly("'#user' is used before its initialization") — converted to the lazy$derived.byform. - Fixed — the mobile sidebar can be closed again — the toggle now passes the requested open state to
setOpenMobile.
Why now: fast-follow to v0.27.0 — the first downstream consumer of the generic session-source feature surfaced these five framework defects.
What's New in 0.27.0
Section titled “What's New in 0.27.0”- BREAKING — legacy-chats hooks redesigned as generic session-source seams in
apps/pika-chat/src/lib/custom/. The five consumer-named hooks shipped in v0.26.0 (loadLegacyChatsIfNeeded,getLegacyChatsSectionHeader,getLegacyChatsSectionTrigger,isCurrentSessionReadOnly,validateLegacyUserIdIfNeeded) are replaced by three generic seams:getAdditionalSessionSources(user, chatAppId) → SessionSource[],isSessionReadOnly(session, user), andresolveRequestUserId(requestedUserId, sessionUserId, ctx).LEGACY_ACTION_USER_ID_COOKIEis removed. Client-side hook signatures now useChatUser<U>(notAuthenticatedUser<T, U>) to keep server-only fields off the public hook surface. Sources load viaPromise.allSettledso one failing source never breaks siblings — see the Extension Points guide and the v0.26.0 → v0.27.0 migration guide. pika migrate v0.26.0-v0.27.0CLI subcommand — removes the four orphan hook files from a consumer tree. Flags:--dry-run(preview),--force(skip both consumer-tree detection and dirty-tree git check),--force-content-mismatch(override the per-file SHA-256 safety check that skips customized files). Symlinks always refused. Idempotent.pika syncdoes not propagate deletes of protected files, so consumers must run this command after upgrading.- Svelte 5 component test infrastructure — Vitest +
@testing-library/svelte+ jsdom added toapps/pika-chatalongside the existing Jest setup. Newpnpm test:componentsscript. Initial coverage: 7 tests forchat-nav.svelteacross every session-source render state.
Why now: no merged consumer is on v0.26.0 yet (downstream consumption was paused after the design smell was identified). This is the only window to redesign these seams without breaking a real consumer.
What's New in 0.26.0
Section titled “What's New in 0.26.0”- Framework seams — 11 AzureAD-friendly extension-point hooks in
apps/pika-chat/src/lib/custom/. Admin gating (isUserAllowedAdminAccess), legacy session loading (loadLegacyChatsIfNeeded, header/trigger slots), session permissions (isCurrentSessionReadOnly), legacy-user-id validation, entity extraction, session account-context transformation, ChatUser role-merge bypass (shouldBypassChatUserRoleMerge), and auth-provider hooks (onAuthProviderCallback,onBeforeAuth). All hooks default to no-op — see the Extension Points guide. - Demo-mode framework seams — 7 hooks + public CSS contract. New hooks: banner slot, menu-item slot (wired into 4 dropdowns), polling-interval, effective-user predicate, home-page-user resolver, Logout visibility, detailed-trace gate. CSS contract via
--demo-banner-hreserves viewport space when a banner is mounted. Defaults preserve current behavior — see the Demo-Mode Hooks guide. - Strands-native long-term user memory in the Python
converseStrandsLambda. Agent-driven retrieval (agent_core_memory.retrieve) and save (record) replace the legacy TS Lambda's per-turnCreateEventCommandwrites. Two-layer design (system-prompt addition + first-turn nudge) preserves Bedrock prompt cache. Opt in viaagent_def.memory_feature.enabled = truewith amemory_id— see the Strands Long-Term User Memory guide. - Services library account-context utilities —
batchGetUserCustomDataByUserIds(), configurable account-ID resolution via newPikaConfig.accountIdFieldNames/PIKA_ACCOUNT_ID_FIELD_NAMESenv var,mergeSessionAttributes()helper, andCHAT_DEBUG_LOGSenv gate for noisy chat-API debug logs. Defaults preserve current behavior. - Sync
protectedAreasexpanded to v1.0.6 — 9 new default-protected paths cover account/entity integration extension points, CDK stack-def files, and shared tooling. Runpika syncafter upgrading to pick up the new list automatically. - Docker build-cache optimization in
pika-chat-construct.ts—cacheFrom: [{ type: 'gha' }]is conditionally passed toDockerImageAssetwhenDOCKER_CACHE_FROM_GHA=true, enabling near-instant CDK asset publishing on GHA cache hit. Local builds unaffected. - 5 generic robustness improvements ported from a downstream consumer — cookie error/version-mismatch split (preserves non-auth cookies on corruption), SSM
ParameterNotFoundgraceful return,chatAppStatenull guards on route transitions, file-upload hardening (MIME allowlist + filename sanitization + S3 key validation), andisUserAllowedToUseSessionInsightsmade async. - Fixed gzip+base64 encoding in Strands
debug_trace.py— encoded payloads now round-trip through the JS client decoder; the LLM Instruction accordion in the trace UI decodes correctly. - Security upgrades — Alpine base image → 3.22.3, weather-direct sample pins
@aws-sdk/client-lambda3.974.0 and@aws-sdk/credential-provider-node3.972.1 (patchedfast-xml-parserfor Snyk CVEs).
What's New in 0.25.2
Section titled “What's New in 0.25.2”- Strands converse Lambda
max_tokensraised to 64000 - Both the main agent and collaboratorBedrockModelconfigs now use Claude 4.5 Sonnet's actual max output (64K), up from a hardcoded 4096 leftover from older Claude defaults. Long-form responses (detailed explanations, code generation, multi-step plans) that previously truncated at ~3KB now stream through cleanly. - Graceful
MaxTokensReachedExceptionhandling - When the model hits its max output limit, users now see "your request required more processing than I can handle in a single response. Try breaking it into smaller steps or simplifying your request." instead of a generic error message.
What's New in 0.25.1
Section titled “What's New in 0.25.1”useStrandsConverseprop on PikaChatConstruct - New optional boolean drives the converse Lambda SSM key (converse_urlvsconverse_strands_url). Referencebin/pika-chat.tswires it frompikaConfig.siteFeatures?.strandsConverse?.enabled, so a single flag drives both the optionalConverseStrandsConstructand the chat app's URL lookup. Closes a gap from 0.25.0 where the SSM key was hardcoded toconverse_url, contradicting the conditional construct.SessionInsightsScheduleis now flag-gated, with a finer-grainedscheduleEnabledknob - The per-minute EventBridge rule that fires the insights runner Lambda is created only whensessionInsightsFeature.enabledis true ANDsessionInsightsFeature.scheduleEnabledis notfalse. SetscheduleEnabled: falseto deploy the runner Lambda and OpenSearch domain but skip the per-minute schedule (cost-control mode — keeps the infrastructure available for manual/backfill runs without idle Bedrock charges). Previously the rule fired every minute regardless of any flag.userTypeandrolespropagated to DDB on login -apps/pika-chat/src/hooks.server.tsnow writesuserTypeandrolesfrom the auth provider through toChatUserin DynamoDB, alongsidefirstName/lastName. The DDB write capability was added in 0.24.0; the call site was overlooked. Auth-provider changes to userType/roles now actually persist.- Default
pnpm testno longer hits AWS -apps/pika-chat/jest.config.jsexcludestest/integration/;services/pika/jest.config.cjsexcludeschat-admin.test.tsandchat-session-os.test.ts. Newtest:integrationscript inapps/pika-chat/package.jsonfor opt-in runs.
What's New in 0.25.0
Section titled “What's New in 0.25.0”- Optional Python (Strands) converse Lambda - New
ConverseStrandsConstructopt-in alternative to the TypeScript converse Lambda- Built on the Strands Agents SDK with full feature parity (auth, agent loading, collaborators via Strands Swarm, KB, inline tools, MCP, user memory, streaming, title, verification, pricing)
- Strands Skills replace the Nova Lite LLM call for directive selection on the preferred path — one fewer model invocation per request (Nova Lite remains as a fallback)
- Deployed on Python 3.14 / Graviton (arm64) with Lambda Web Adapter for response streaming
- Enable via
pikaConfig.siteFeatures.strandsConverse.enabled = trueand swapconverse_url→converse_strands_urlin the chat app SSM lookup — see the Strands Converse guide
- New Claude default models -
DEFAULT_ANTHROPIC_MODELbumped to Claude 4.5 Sonnet;DEFAULT_VERIFICATION_MODELto Claude 4.5 Haiku. Added Claude 4.5 Opus / 4.6 Sonnet / 4.6 Opus to the registry with pricing. Removed decommissioned Claude 3.x models. - Streaming stability - Lambda emits
<heartbeat/>every 15s during idle periods; ALB idle timeout raised to 300s; client-side stall indicator with rotating status messages - Collaborator response rendering - Post-processor rewrite handles both Converse envelope formats and unwraps
AgentCommunication__sendMessage; JSON sanitization workaround for Bedrock's unescaped control-char streaming - Session title hardening - Title generation runs in a try/catch on Haiku; failures never block message persistence
- Verification model ID fix - Adds
us.inference-profile prefix to preventValidationException→ "Oops! Something glitched" - Inference profile custom resource - No longer churns on every deployment (removed redundant
timestampproperty) - CDK bump -
aws-cdk-lib→^2.249.0,aws-cdk→^2.1118.0(required forRuntime.PYTHON_3_14) - Headless CI deploys -
cdk:deploynow includes--require-approval neverso IAM changes don't block on TTY prompts
What's New in 0.24.0
Section titled “What's New in 0.24.0”- Semantic directive injection for collaborator agents - Collaborators now receive their own runtime-resolved directives, not just the top-level agent
- Directives resolved in parallel using
Promise.allSettled— one failure doesn't block others - Injected into collaborator instruction via
<additional-instructions>XML block with 20K-char size budget - Relevance-ranked truncation drops least-important directives first when budget is exceeded
- Per-collaborator directive traces emitted for admin debugging
- Directives resolved in parallel using
- Server hook hardening - Timer leak fix, dead guard removal, and
??nullish coalescing fortransformCustomUserData - userType and roles persistence -
updateUser()now writesuserTypeandrolesto DynamoDB, fixing silent data loss on login
What's New in 0.23.2
Section titled “What's New in 0.23.2”- Multi-agent raw response fix - Chat output no longer displays raw Bedrock Converse API response JSON in multi-agent collaboration scenarios
- Detects raw response envelopes from
AgentCommunication__sendMessageand extracts clean text content - Falls back to original chunk if parsing fails — defensive against future Bedrock API changes
- Detects raw response envelopes from
What's New in 0.23.1
Section titled “What's New in 0.23.1”- Agent model ID resolution -
resolveModelId()automatically maps bare model IDs to inference profile IDs before Bedrock invocation- Fixes
ValidationExceptionwhen agent definitions use bare model IDs (e.g.anthropic.claude-…) instead of inference profiles (us.anthropic.claude-…) - Also resolves to env-overridden inference profile ARNs when configured
- Applied at all three invocation points: main agent, collaborators, and verification model
- Fixes
What's New in 0.23.0
Section titled “What's New in 0.23.0”- Server Hooks Extension Point - New
transformCustomUserDatahook for server-side data transformation- Configure in
$lib/custom/server-hooks.ts— sync-protected, so customizations survive pika updates - Enrich, validate, or resolve missing user attributes before they reach the converse Lambda
- Built-in safety: 5-second timeout, undefined guard, and graceful error fallback
- See Server Hooks guide for examples and best practices
- Configure in
What's New in 0.22.1
Section titled “What's New in 0.22.1”- External user chat app visibility fix - Fixed a bug where external users could not see any chat apps on the home page
- The
ChatAppLitemapping used the wrong property name (userTypesAllowedinstead ofuserTypes) - The client-side filter defaulted all users to
['internal-user'], hiding chat apps from external users - Internal users were unaffected
- The
What's New in 0.22.0
Section titled “What's New in 0.22.0”- CLI: Non-interactive sync mode - New
--yesflag forpika syncauto-confirms all prompts- Enables
pika syncin CI/CD pipelines and automated agent workflows without interactive input - When
--yesis passed, breaking changes are also auto-acknowledged (no separate flag needed) - Existing interactive behavior is unchanged without the flag
- Enables
What's New in 0.21.0
Section titled “What's New in 0.21.0”- Non-interactive release mode - Release tooling supports
--non-interactivefor CI/CD and AI agent workflows- Unified
pnpm release --non-interactiveauto-detects version bump from branch prefix - Gathers git context and outputs a self-contained prompt to stdout
- Enables fully automated release documentation workflows
- Unified
- AGENTS.md for AI agent context - Structured context file for AI agents working in the codebase
- CLI: AGENTS.md protected area - Downstream projects can customize their AGENTS.md without sync overwriting it
What's New in 0.20.2
Section titled “What's New in 0.20.2”- Model ID validation fix -
MODEL_ID_TO_MODELnow accepts base model IDs (e.g.anthropic.claude-sonnet-4-5-20250929-v1:0) in addition to cross-region prefixed IDs (us.anthropic.claude-…)- Fixes 400 error when updating foundation model on agents via chat-admin API with non-prefixed model IDs
What's New in 0.20.1
Section titled “What's New in 0.20.1”- Session ID visible to all users - The Session ID in the chat titlebar info panel is now available to all users, not just internal users
- External users can copy the session ID for support and troubleshooting purposes
What's New in 0.20.0
Section titled “What's New in 0.20.0”- Custom field for agent definitions - Store arbitrary key/value data on agents via the new
customproperty- Pika stores and passes through data without interpretation — attach configuration, metadata, or feature flags
- Max 100KB serialized (DynamoDB 400KB item limit is shared across all agent attributes)
- Foundation model selection -
foundationModelandverificationFoundationModelare now updateable via the chat-admin API- Change an agent's Bedrock model without a full replace
- Model IDs validated against the known Bedrock model registry at creation and update time
- Updateable agent fields -
foundationModel,verificationFoundationModel, andcustomadded to the update allowlist - Documentation - Agent Definition reference and Agent Tool type reference updated with custom field docs and model validation rules
What's New in 0.19.5
Section titled “What's New in 0.19.5”- Session context for collaborators - Supervisor agents can pass session context to collaborators via
collaboratorContextFields- Set an array of keys (e.g.
userId,currentDate,timezone,firstName,lastName,accountId,accountType) on the supervisor's agent definition - Those keys are injected into each collaborator's instruction as a
<session-context>XML block so collaborators can use user and session data - See Multi-Agent Collaboration — "Passing session context to collaborators"
- Set an array of keys (e.g.
- Updateable agent fields -
collaboratorContextFieldsandcollaboratorscan now be updated via the chat-admin API on existing agents - Documentation - Multi-Agent Collaboration guide includes "Passing session context to collaborators"; Agent Definition reference updated for the new and updatable fields
What's New in 0.19.4
Section titled “What's New in 0.19.4”- Admin Settings Button Fix - Settings button now accessible on all admin pages, not just General Settings
- New dropdown menu with chatbot settings, user info (with copy-to-clipboard), and logout
- Previously, the settings gear icon was only visible on the General Settings page
What's New in 0.19.3
Section titled “What's New in 0.19.3”- Collaborator action groups fix -
requireConfirmationon collaborator action group functions is now normalized to'DISABLED'when it would otherwise be null, preventing AWS Bedrock invocation failures
What's New in 0.19.2
Section titled “What's New in 0.19.2”- Chat Titlebar Fix - Settings and navigation buttons in the chat titlebar were inaccessible due to content overlapping
- Added proper z-index stacking so the titlebar stays above scrolling content
- Fixed main layout container sizing to prevent content overflow
What's New in 0.19.1
Section titled “What's New in 0.19.1”- CLI Sync Fix - Framework-internal files (
.github/,RELEASING.md) no longer leak into user projects via sync - CLI Create-App Fix - New projects no longer include
RELEASING.mdandRELEASE-SYSTEM-SUMMARY.md - CLI 1.4.1 Published - Run
npm install -g pika-app@latestto update
What's New in 0.19.0
Section titled “What's New in 0.19.0”- Custom Logout Dialog - Replace the default logout dialog with a custom Svelte component
- Registry pattern via
$lib/custom/logout-dialog.ts- export your component ornull - Full control over dialog appearance, button actions, and pre-logout operations
- Access
AppStatefor user data, custom data, and feature configuration - See Custom Logout Dialog guide
- Registry pattern via
- Client Lifecycle Hooks - Run custom code during page initialization and periodic polling
onInitruns once on page load,onPollruns on each polling interval- Fetch external data and store it in
user.customDatafor use across extension points - Configure in
$lib/custom/client-lifecycle.ts- export functions ornullto disable - See Client Lifecycle Hooks guide
- Logout Redirect Parameter -
/logout-now?redirect_to=/controls post-logout navigation- Security validation prevents open redirect attacks
- CLI Sync Improvement - Protected area files now delivered on first sync when missing locally
- Ensures new extension points reach existing projects automatically
- CLI 1.4.0 Published - Run
npm install -g pika-app@latestto update
What's New in 0.18.5
Section titled “What's New in 0.18.5”- Stage Placeholder in URLs - Use
{{stage}}placeholder in web component URLs for stage-specific deployments - Tag Definition Custom Resource API - Updated to use
StageandTagDefDataproperties
What's New in 0.18.4
Section titled “What's New in 0.18.4”- Various widget system fixes
What's New in 0.18.3
Section titled “What's New in 0.18.3”- Hero Restoration Fix - Hero now properly restores when closing canvas in companion mode
- Handles widgets that call
hideHero()before opening companion mode canvas - Hero automatically shows again when companion mode exits
- Handles widgets that call
What's New in 0.18.2
Section titled “What's New in 0.18.2”- Hero Widget Persistence - Hero widgets now persist in DOM when hidden
- Use
heroDidShowevent to refresh data when hero becomes visible again - Preserves widget state across visibility changes
- Use
- Widget Stability Fixes - Fixed multiple widget lifecycle issues
- Hero no longer destroyed when hidden
- Static widgets no longer re-injected on companion mode toggle
- Race conditions in widget injection prevented
- Companion Mode Improvements - Cleaner UI when canvas is open
- Sidebar toggle and new chat icons hidden in companion mode
What's New in 0.18.1
Section titled “What's New in 0.18.1”- Hero Minimized Position - Collapsed hero now moves to top-left position alongside spotlight
What's New in 0.18.0
Section titled “What's New in 0.18.0”- Intent Router - Fast LLM-based command classification for instant responses (~200-400ms)
- Intercepts user messages before Bedrock agent for known intents
- Two modes:
direct(execute immediately) anddispatch(send to orchestrator) - Commands defined via
intentRouterCommandson tag definitions - Admin UI at
/admin/tag-definitionsfor command management
- Collapsible Hero Widget - Hero can collapse to a compact header bar
collapseHero(),expandHero(),toggleHeroCollapsed()API methods
- Hero Sizing Configuration - Control hero dimensions via tag definition
minWidth,maxWidth,minHeight,maxHeightconstraints
- Suggest Question API - Pre-fill chat input for AI helper buttons
suggestQuestion(text)expands chat pane and highlights input
- Widget Ready Event -
signalWidgetReady()andwidgetReadyevent - Hero/Spotlight Events - Detailed lifecycle events for state coordination
- Widget Tag ID -
ctx.tagIdautomatically provided to widgets
What's New in 0.17.0
Section titled “What's New in 0.17.0”- Hero Rendering Context - New singleton widget area for dominant display elements
- API-controlled visibility via
showHero(),hideHero(),closeHero() - Configurable sizing with
minHeight,maxHeight,preferredHeight
- API-controlled visibility via
- Companion Mode - Application-first UX where canvas widgets become primary
- Enable via
companionMode: truein canvas widget options - Chat pane becomes compact, spotlight and hero hidden
- Enable via
- Chat Pane Minimize - Minimize chat to a compact strip
setChatPaneMinimized(boolean)API for programmatic control
- Event System - Subscribe to framework state changes
- Widget lifecycle, canvas, companion mode, chat pane, and hero events
- Automatic cleanup when
instanceIdpassed toaddEventListener()
- Full Control Canvas Widgets - Widgets render their own chrome
- Enable via
fullControl: true, userequestCanvasClose()to close
- Enable via
- Close Configuration - Configure canvas close behavior with confirmation dialogs
What's New in 0.16.8
Section titled “What's New in 0.16.8”- CLI Package Published - Published pika-app CLI version 1.3.1 to npm with sync fixes
- Run
npm install -g pika-app@latestto get the updated CLI - Includes fixes from 0.16.6 (glob pattern protection) and 0.16.7 (
__dirnameerror fix)
- Run
What's New in 0.16.7
Section titled “What's New in 0.16.7”- Sync Protected Areas Config Loading Fix - Fixed
__dirnameerror preventing protected areas config from loading- The CLI uses ES modules where
__dirnameis not available - Added ES module compatible
__dirnameusingfileURLToPath(import.meta.url) - Ensures custom directories are always protected even if config file cannot be loaded
- The CLI uses ES modules where
What's New in 0.16.6
Section titled “What's New in 0.16.6”- Sync Protected Areas Bug Fix - Fixed glob patterns not protecting parent directories
- Pattern
path/to/custom/**now correctly protects thecustomdirectory itself - Previously, directories matching the parent of a
/**glob would be deleted during sync
- Pattern
What's New in 0.16.5
Section titled “What's New in 0.16.5”destructive-bgTheme Variable - Added missing semantic background color for destructive/error states- Completes the pattern:
success-bg,warning-bg,info-bg,ai-bg,destructive-bg - Use for error alerts, validation messages, and destructive action backgrounds
- Completes the pattern:
What's New in 0.16.4
Section titled “What's New in 0.16.4”- Home Page Redesign - Complete redesign of the AI Assistants landing page
- Modern card-based layout with hover effects and "Launch Assistant" CTA
- Customizable logo with light/dark mode support
- Search bar that auto-appears at 6+ assistants
- Configurable title, subtitle, and navigation button text
- Custom Assistant Icons - Per-assistant icon customization on home page cards
- Set
iconon individual assistants ordefaultAssistantIconfor global default - Configurable icon size with
assistantIconSize
- Set
- Custom Header Icon - Replace the AI sparkle icon in chat app headers
chatAppHeaderIconin theme config supports single or light/dark URLs- CSS variables for icon color, height, and gap
- Protected Assets Directory -
apps/pika-chat/static/custom/assets/protected from sync - Terminology Update - "Chat Apps" renamed to "AI Assistants" throughout
Find All Type Changes for This Release:
Search the repository for @since 0.16.4 to find all type definitions that were added, updated, or removed in this release.
What's New in 0.16.3
Section titled “What's New in 0.16.3”- Theme File Organization - Simplified theme file structure for clearer workflow
- Renamed
theme-config.tstosample-purple-theme.tsto clarify it's a sample to copy - Removed redundant
examples/folder (sample theme serves as the example)
- Renamed
- Theme Vite Plugin Fix - Fixed config loading to use proper TypeScript module resolution
- Now uses jiti to load configs instead of regex parsing
- Properly reads
themeConfigPathfrom pika-config.ts dynamically
- Theme CLI Fixes - Fixed hardcoded theme path references in CLI commands
- Release Tool Fix - Now reads from
origin/mainfor accurate version detection
What's New in 0.16.2
Section titled “What's New in 0.16.2”- Release Tooling - Improved release prompt templates to ensure complete documentation updates
- Release prompts now require updating
index.mdocfor ALL releases (not just breaking changes) - Added missing 0.16.0 and 0.16.1 content to releases overview page
- Release prompts now require updating
What's New in 0.16.1
Section titled “What's New in 0.16.1”- Documentation Build Fix - Fixed theming guide causing Astro build failures
- Corrected markdoc syntax from
{% tab %}to{% tabitem %}in theming documentation - Added UI Theming guide to sidebar navigation under Guides → Customization
- Corrected markdoc syntax from
What's New in 0.16.0
Section titled “What's New in 0.16.0”- UI Theming System - Complete theming system for customizing colors, typography, and visual styling
- New
customThemeconfiguration insiteFeatures.uiCustomizationto enable custom themes - Sample theme at
apps/pika-chat/src/lib/custom/sample-purple-theme.ts- copy and customize for your brand - Semantic CSS variables for brand colors, surfaces, borders, status colors, sidebar, and charts
- OKLCH color format for perceptually uniform, accessible color palettes
- Full dark mode support with separate light/dark variable definitions
- Hot Module Replacement (HMR) - theme changes take effect immediately without restart
- New
- Theme CLI Commands - New
pika themecommand for theme managementpika theme check- Verify theme schema version and see available updatespika theme update- Add new theme variables when framework updates introduce thempika theme list- Display all available CSS variables with descriptions and defaultspika theme docs- Quick reference for theming system and OKLCH color format
- Web Component Theme Access - Programmatic access to theme values for custom components
getThemeVariable(name)- Read individual CSS variable valuesgetPikaThemeTokens()- Get all semantic theme tokens as an object
Find All Type Changes for This Release:
Search the repository for @since 0.16.0 to find all type definitions that were added, updated, or removed in this release.
What's New in 0.15.5
Section titled “What's New in 0.15.5”- Chat session issue - Fixed needing to refresh chat app state to see new messages
- No longer need to refresh chat app state to see new messages
What's New in 0.15.4
Section titled “What's New in 0.15.4”- Opensearch Type Issue - Fixed minor opensearch type issue
- Fixed issue where metrics were not corectly being transformed on way in/out of opensearch
What's New in 0.15.3
Section titled “What's New in 0.15.3”- Cost Distribution Charts - Added cost distribution charts to session analytics
- Added cost distribution charts to session analytics
- Auto Insights Runaway Issue - Fixed auto insights runaway issue
- Fixed data corruption issue allowing auto insights to run indefinitely (made self healing)
What's New in 0.15.2
Section titled “What's New in 0.15.2”- Analtyics Backfill Tool - Fixed analtyics tool flushing issuenot flushing messages to OpenSearch
- Fixed issue where analytics tool was not flushing messages to OpenSearch
Check your project version:
cat .pika-sync.json | grep pikaVersionWhat's New in 0.15.0
Section titled “What's New in 0.15.0”- Message-Level Analytics - Enhanced session analytics with comprehensive message insights
- Message counts: user messages, assistant responses, averages per session
- Per-response metrics: cost, tokens, execution duration
- Timing analytics: response time, user think time, session duration, long gap detection
- New time series chart showing user vs assistant message counts
- Pre-computed statistics for 10-100x faster queries
- Message Content Search - Session Insights search now includes full-text message search
- Search across message text, extracted LLM instructions, and model names
- Seamless integration with existing session field search
- Message Index - New dedicated OpenSearch index for message documents
- Full-text search on message content and LLM instructions
- Automatic replication from DynamoDB via Lambda stream handler
- Migration Tools - Three migration scripts for safe deployment
update-session-mapping-for-messages.ts- Update session index (run BEFORE deployment)backfill-invocation-mode-to-messages/- Backfill message metadatabackfill-messages-to-opensearch/- Populate message index and analytics
Find All Type Changes for This Release:
Search the repository for @since 0.15.0 to find all type definitions that were added, updated, or removed in this release.
What's New in 0.14.2
Section titled “What's New in 0.14.2”- Admin Site Session Insights - Improved admin site session insights feature
- Enhanced client-side filtering with hybrid search capabilities
- Added batch user lookup API for displaying user names
- Improved entity column handling with automatic name enrichment
- Better UX with hover-to-copy functionality and reactive updates
What's New in 0.14.1
Section titled “What's New in 0.14.1”- Bug Fix - Fixed stack tags to ensure they are converted to required string type before being applied to Bedrock inference profiles
What's New in 0.14.0
Section titled “What's New in 0.14.0”- Component Tags for Granular Cost Tracking - Enhanced stack tagging with component-level identification
- New
componentTagNamesarray instackTagsconfiguration tags each infrastructure resource with its component name - Component tags applied to all AWS resources: Lambda, DynamoDB, S3, ECS, Fargate, KMS, OpenSearch, Bedrock inference profiles
- Enables granular cost analysis in AWS Cost Explorer - see costs for specific Lambda functions, DynamoDB tables, or AI models
- Example: Filter by AWS Lambda, then group by
componenttag to see costs for each function separately - Particularly valuable for Bedrock costs - track which AI models consume the most
- Helper method
applyComponentTags()incustom-stack-defs.tsfor easy tagging of custom infrastructure - See AWS CDK deployment guide Component Tags section
- New
- Tag Environment Variable Support - CloudFormation custom resources can now access and apply tags
- Tags passed to custom resource Lambdas via
STACK_TAGSandCOMPONENT_TAG_NAMESenvironment variables - New utility functions:
getStackTagsFromEnv(),getComponentTagNamesFromEnv(),createComponentTags(), etc. - Bedrock inference profiles and KMS keys now properly tagged with component identifiers
- Tags passed to custom resource Lambdas via
- Tag Size Validation - Prevents deployment failures due to AWS Lambda limits
- 500-byte limit enforced on combined tag environment variables
- CDK synthesis fails early with clear error if limit exceeded
- Bug Fixes - Fixed inference profile tag deduplication and custom resource re-invocation
- Type Additions - New property with
@since 0.14.0annotation:PikaConfig.stackTags.componentTagNames- Component tag names array
Find All Type Changes for This Release:
Search the repository for @since 0.14.0 to find all type definitions that were added, updated, or removed in this release.
What's New in 0.13.0
Section titled “What's New in 0.13.0”- Inference Profile Cost Tracking - Automatic creation of named inference profiles for granular AI model cost analysis
- Pika automatically creates named inference profiles for Claude 4 Sonnet, Claude 4.5 Haiku, and Claude 4.5 Sonnet
- Enables per-model cost tracking in AWS Cost Explorer
- Inference profiles follow naming pattern:
{stackName}-{profileName}(e.g.,pika-test-claude-sonnet-4-5) - All profiles tagged with your configured
stackTagsfor flexible cost allocation - See Track AI Model Costs guide
- AWS Resource Tagging System - Comprehensive tagging for cost tracking, organization, and compliance
- New
stackTagsconfiguration inpika-config.tswithcommon,pikaServiceTags, andpikaChatTagscategories - Dynamic placeholder support:
{stage},{timestamp},{accountId},{region},{pika.projNameKebabCase}, etc. - Tags applied to all AWS resources including Lambda, DynamoDB, S3, CloudFront, and inference profiles
- See Configure AWS Resource Tags guide
- New
- Type Additions - New interfaces with
@since 0.13.0annotations:PikaConfig.stackTags- AWS resource tagging configurationMarkdownRendererConfig- Markdown renderer optionsIAppState.convertMarkdownToHtml()- Markdown conversion method
Find All Type Changes for This Release:
Search the repository for @since 0.13.0 to find all type definitions that were added, updated, or removed in this release.
What's New in 0.12.0
Section titled “What's New in 0.12.0”- Entity List Value Retrieval - New required method for entity implementations
- Added
getValuesForEntityList()method to fetch entity display names by ID - Required for displaying entity names in session analytics and admin UI
- Important: When syncing, this method must be manually added to
custom-data.ts - Can return empty array if entity feature is not being used
- Added
- Session Analytics UI Improvements - Enhanced admin site analytics interface
- Improved visual design and layout of session analytics dashboard
- Better organization of filters and controls with refined toggle groups
- Enhanced date range selection with popup calendar
- More intuitive entity filtering interface
- Type Additions - New
GetValuesForEntityListRequestandGetValuesForEntityListResponseinterfaces with@since 0.12.0annotations
What's New in 0.11.3
Section titled “What's New in 0.11.3”- pika-cli Sync Command Improvements - Better temp file handling and visual diff functionality
- Changed temp directory location from project directory to OS temp directory for cleaner workspace
- Added automatic cleanup of old
pika-sync-*temp directories - Fixed
--visualdiffmode to keep temp files available for editor review - Fixed visual diff command execution for better cross-platform compatibility
- Added informative logging about temp file location when using
--visualdiff
- Site Admin General Settings Fix - Fixed page header right snippet not being assigned
- OpenSearch Error Logging - Improved error message logging for source filtering failures
What's New in 0.11.2
Section titled “What's New in 0.11.2”- CI/CD Pipeline Fix - Fixed pnpm lockfile synchronization issue
- Resolved
ERR_PNPM_OUTDATED_LOCKFILEerror in GitHub Actions workflows - Regenerated lockfile to sync dependency ordering with package.json files
- Ensures successful frozen-lockfile installation in CI environments
- Resolved
What's New in 0.11.1
Section titled “What's New in 0.11.1”- Site Admin Type Safety Improvements - Fixed TypeScript type handling in site admin pages
- Removed unnecessary
as anytype casts for page header snippets - Improved type safety in 6 site admin components: chat apps, general settings, instruction augmentation, memory, session analytics, and session insights
- Removed unnecessary
What's New in 0.11.0
Section titled “What's New in 0.11.0”- Enhanced Session Analytics Dashboard - Comprehensive analytics with advanced filtering and aggregations
- Filter sessions by invocation mode, user type, and source
- Cost aggregations by invocation mode with visual charts
- Session count trends and distribution visualizations
- Widget Metadata System - Dynamic UI chrome for widgets across all rendering contexts
- Set title, icon, loading status, and custom actions for widgets
- Metadata can be set initially or dynamically updated
- Support for spotlight, canvas, and dialog widgets
- Dynamic Widget Registration for Canvas/Dialog - No tag definitions required
- Auto-generation of tag definitions when needed
- Auto-enables requested rendering context
- Widget Context API - Access full context from widget action callbacks
- New
getWidgetContext(instanceId)method - Widget actions receive element reference and full context
- New
- Automatic User Profile Sync - Framework syncs firstName/lastName from auth provider
- Type Organization Improvements - Better organized TypeScript types with
@sinceannotations
Breaking Changes:
- OpenSearch keyword field migration required for session analytics aggregations
- User type migration required for chat sessions
- WidgetAction callback signature changed to receive context object
See the Migration Guide for complete upgrade instructions.
Find All Type Changes for This Release:
Search the repository for @since 0.11.0 to find all type definitions that were added, updated, or removed in this release.
What's New in 0.9.0
Section titled “What's New in 0.9.0”- Complete Documentation Site Overhaul - Brand new Astro-based documentation experience
- Comprehensive documentation following Diátaxis framework (Tutorials, How-To Guides, Explanations, Reference)
- Reorganized content structure: Why Pika, Getting Started, Concepts, Capabilities, Guides, Reference, Platform
- Enhanced content with detailed diagrams, code examples, and step-by-step instructions
- Improved navigation, search functionality, and custom Markdoc components
- Documentation generation prompt template for AI-assisted content creation
- Updated release tooling for better version management
What's New in 0.8.0
Section titled “What's New in 0.8.0”- Widget Instance Registry - Comprehensive tracking system for all rendered web components
- Centralized registry accessible via
chatAppState.widgetInstanceswith DOM element references - Automatic lifecycle tracking across all rendering contexts (spotlight, canvas, dialog, inline, static)
- Cross-widget communication, debugging, and programmatic manipulation capabilities
- Memory leak prevention with automatic cleanup when widgets are removed
- Enhanced API returning both instanceId and element reference
What's New in 0.7.0
Section titled “What's New in 0.7.0”- Web Component Initialization Enhancement - Direct property and attribute setting when rendering components
- New
DataForWidgetinterface withattributes,properties, andonReadycallback - Pass complex objects, arrays, or functions directly to web component properties
- Get notified when component is ready with lifecycle callback
- Comprehensive documentation with detailed examples
What's New in 0.6.2
Section titled “What's New in 0.6.2”- Chat Input Height Fix - Textarea now properly resets to original size after submitting questions
- Improved user experience with predictable input field sizing
- Fixed height reset behavior in chat input component
What's New in 0.6.1
Section titled “What's New in 0.6.1”- S3 File Content Route Fix - Improved reliability and safety for S3 text file retrieval
- Added 50MB file size limit to prevent memory issues
- Fixed route path structure for proper parameter handling
- Better error handling for oversized files
What's New in 0.6.0
Section titled “What's New in 0.6.0”- S3 File Access for Web Components - New
getS3TextFileContent()method enables secure retrieval of text files from the Pika S3 bucket - No AWS credential management required for web components
- Perfect for loading configuration files, data files, or dynamic content
- Comprehensive documentation with examples
How Releases Work
Section titled “How Releases Work”Version Numbering (0.x.x)
Section titled “Version Numbering (0.x.x)”While Pika is pre-1.0, we use:
- 0.x.0 - Breaking changes or significant new features
- 0.x.y - Bug fixes and minor improvements
Once we reach 1.0, we'll follow strict semantic versioning.
Release Frequency
Section titled “Release Frequency”- Breaking changes: Released promptly with migration guides
- New features: Batched when ready (typically every 2-4 weeks)
- Bug fixes: Released as needed
What You Get
Section titled “What You Get”Each release includes:
- Changelog - Detailed list of changes
- Migration guides - Step-by-step instructions for breaking changes
- Version metadata - Tracked in your
.pika-sync.json - Automatic sync support -
pika synchandles updates intelligently
Sync Your Project
Section titled “Sync Your Project”Update to the latest version:
# See what will changepika sync --dry-run
# View detailed diffspika sync --diff
# Apply updatespika syncThe sync command will:
- Check your current version
- Download the latest framework
- Show you what's changed
- Warn about breaking changes
- Preserve your customizations
- Apply updates safely
Breaking Changes
Section titled “Breaking Changes”When breaking changes are introduced:
- Automatic detection -
pika syncwill detect breaking changes - Block sync - Won't proceed without acknowledgment
- Clear guidance - Links to migration guides
- Manual steps - Detailed instructions for required changes
Version History
Section titled “Version History”| Version | Date | Type | Summary |
|---|---|---|---|
| 0.29.0 | Jun 4 2026 | Feature | pika-patches/ overlay: carry edits to seam-less framework files across sync — pika capture-patch, pika sync reapply (git apply --3way), and a --check-collisions CI gate |
| 0.28.1 | Jun 4 2026 | Patch | Strands converse: surface the current date on the user turn so agents resolve relative date ranges ("year to date", "last 30 days") against today instead of guessing the year |
| 0.28.0 | Jun 2 2026 | Feature | Fast-follow to v0.27.0: SessionSource.position ordering seam; fixes for source-session click-through, sidebar scroll/rail overlap, a svelte-check build blocker, and the mobile sidebar toggle |
| 0.27.0 | May 27 2026 | Breaking | Legacy-chats hooks redesigned as 3 generic session-source seams; pika migrate v0.26.0-v0.27.0 CLI; Svelte 5 component test infrastructure |
| 0.26.0 | May 26 2026 | Feature | Framework seams (11 AzureAD-friendly hooks), demo-mode seams (7 hooks + CSS contract), Strands long-term user memory, services library account-context utilities, sync protectedAreas v1.0.6 |
| 0.25.2 | May 4 2026 | Patch | Strands converse Lambda: raise max_tokens to model capacity (64K), add explicit MaxTokensReachedException handler |
| 0.25.1 | May 4 2026 | Patch | Back-port gaps from 0.25.0: hooks userType/roles propagation, jest integration-test isolation, flag-gated insights schedule, flag-conditional Strands SSM lookup |
| 0.25.0 | Apr 23 2026 | Feature | Optional Python (Strands) converse Lambda, Claude 4.5/4.6 default models, streaming heartbeats, post-processor rewrite |
| 0.24.0 | Mar 30 2026 | Feature | Collaborator directive injection, server hook hardening, userType/roles persistence |
| 0.23.2 | Mar 12 2026 | Patch | Fix raw Bedrock API response JSON in multi-agent chat output |
| 0.23.1 | Mar 12 2026 | Patch | Resolve agent model IDs through inference profile mapping |
| 0.23.0 | Mar 12 2026 | Feature | Server hooks extension point for customUserData transformation |
| 0.22.1 | Mar 10 2026 | Patch | Fix external users unable to see chat apps on home page |
| 0.22.0 | Mar 9 2026 | Feature | Non-interactive sync mode with --yes flag |
| 0.21.0 | Mar 4 2026 | Feature | Non-interactive release mode, AGENTS.md context file |
| 0.20.2 | Mar 3 2026 | Patch | Model ID validation accepts base model IDs |
| 0.20.1 | Mar 3 2026 | Patch | Session ID visible to all users in chat titlebar |
| 0.20.0 | Feb 26 2026 | Feature | Custom agent field, updatable foundation models, model validation |
| 0.19.5 | Feb 23 2026 | Feature | Session context for collaborators via collaboratorContextFields |
| 0.19.4 | Feb 17 2026 | Patch | Admin settings button accessible on all admin pages |
| 0.19.3 | Feb 13 2026 | Patch | Collaborator requireConfirmation normalized to prevent Bedrock invocation failures |
| 0.19.2 | Feb 9 2026 | Patch | Fixed chat titlebar blocked by content overlap |
| 0.19.1 | Feb 5 2026 | Patch | CLI fix: framework-internal files no longer sync to user projects |
| 0.19.0 | Feb 5 2026 | Feature | Custom logout dialog, client lifecycle hooks |
| 0.18.5 | Jan 26 2026 | Feature | Stage placeholder in web component URLs |
| 0.18.4 | Jan 26 2026 | Patch | Various widget system fixes |
| 0.18.3 | Jan 25 2026 | Patch | Hero restoration on companion mode exit |
| 0.18.2 | Jan 25 2026 | Patch | Hero persistence, widget stability fixes |
| 0.18.1 | Jan 25 2026 | Patch | Hero minimized position fix |
| 0.18.0 | Jan 24 2026 | Feature | Intent Router, collapsible hero, suggestQuestion API |
| 0.17.0 | Jan 21 2026 | Feature | Hero context, companion mode, event system |
| 0.16.8 | Jan 20 2026 | Patch | Published CLI 1.3.1 with sync fixes |
| 0.16.7 | Jan 20 2026 | Patch | Fixed sync config loading __dirname error |
| 0.16.6 | Jan 19 2026 | Patch | Fixed sync protected areas glob bug |
| 0.16.5 | Jan 19 2026 | Patch | Added destructive-bg theme variable |
| 0.16.4 | Jan 19 2026 | Feature | Home page redesign with customizable branding |
| 0.16.3 | Jan 19 2026 | Patch | Theme file organization and CLI fixes |
| 0.16.2 | Jan 19 2026 | Patch | Release tooling improvements |
| 0.16.1 | Jan 19 2026 | Patch | Documentation build fix for theming guide |
| 0.16.0 | Jan 19 2026 | Feature | UI Theming System with CLI commands |
| 0.15.5 | Nov 12 2025 | Patch | Chat session issue fix |
| 0.15.4 | Nov 4 2025 | Patch | Opensearch type issue fix |
| 0.15.3 | Nov 4 2025 | Patch | Cost distribution charts and auto insights fix |
| 0.15.2 | Nov 3 2025 | Patch | Analytics tool flushing issue fix |
| 0.15.1 | Nov 3 2025 | Patch | Backfill tool robustness and performance fixes |
| 0.15.0 | Nov 3 2025 | Breaking | Message-level analytics and content search |
| 0.14.2 | Nov 2 2025 | Patch | Admin site session insights improvements |
| 0.14.1 | Nov 1 2025 | Patch | Bedrock inference profile stack tag type fix |
| 0.14.0 | Nov 1 2025 | Feature | Component-level tagging for granular cost tracking |
| 0.13.0 | Oct 31 2025 | Feature | Inference profile cost tracking and AWS resource tagging |
| 0.12.0 | Oct 31 2025 | Feature | Entity method addition and analytics UI improvements |
| 0.11.3 | Oct 30 2025 | Patch | pika-cli sync improvements and minor fixes |
| 0.11.2 | Oct 30 2025 | Patch | CI/CD pipeline lockfile sync fix |
| 0.11.1 | Oct 30 2025 | Patch | Type safety improvements in site admin pages |
| 0.11.0 | Oct 30 2025 | Breaking | Session analytics and widget metadata system |
| 0.10.0 | Oct 28 2025 | Feature | Context-aware widgets and dynamic spotlight |
| 0.9.0 | Oct 27 2025 | Feature | Complete documentation site overhaul |
| 0.8.0 | Oct 24 2025 | Feature | Widget instance registry with DOM tracking |
| 0.7.0 | Oct 24 2025 | Feature | Web component initialization enhancement |
| 0.6.2 | Oct 22 2025 | Patch | Chat input height fix |
| 0.6.1 | Oct 21 2025 | Patch | S3 file content route fixes |
| 0.6.0 | Oct 21 2025 | Feature | S3 file access for web components |
| 0.5.2 | Oct 21 2025 | Patch | Instruction augmentation fixes |
| 0.5.1 | Oct 21 2025 | Patch | Session source field fix |
| 0.5.0 | Oct 21 2025 | Breaking | Tag system refactor + Chat session GSI update |
| 0.4.0 | Oct 20 2025 | Stable | Initial tracked release |
Learn More
Section titled “Learn More”- Full Changelog - Complete version history
- Migration Guides - Step-by-step upgrade instructions
- Sync System - How syncing works
Stay Informed
Section titled “Stay Informed”Keep your project updated:
# Check for updates regularlypika sync --dry-runQuestions?
Section titled “Questions?”- Not sure if you should upgrade? Check the changelog for your version
- Breaking change coming? Migration guides provide complete instructions
- Sync issues? See Troubleshooting