Skip to content

Releases

Stay up to date with the latest Pika Framework releases, new features, and important changes.

  • BREAKING — legacy-chats hooks redesigned as generic session-source seams in apps/pika-chat/src/lib/custom/. The five ai-bot-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), and resolveRequestUserId(requestedUserId, sessionUserId, ctx). LEGACY_ACTION_USER_ID_COOKIE is removed. Client-side hook signatures now use ChatUser<U> (not AuthenticatedUser<T, U>) to keep server-only fields off the public hook surface. Sources load via Promise.allSettled so 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.0 CLI 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 sync does 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 to apps/pika-chat alongside the existing Jest setup. New pnpm test:components script. Initial coverage: 7 tests for chat-nav.svelte across every session-source render state.

Why now: no merged consumer is on v0.26.0 yet (ai-bot consumption was paused after the design smell was identified). This is the only window to redesign these seams without breaking a real consumer.

Latest Stable: 0.27.0 (May 27, 2026)

  • CM-491 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-h reserves 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 converseStrands Lambda. Agent-driven retrieval (agent_core_memory.retrieve) and save (record) replace the legacy TS Lambda's per-turn CreateEventCommand writes. Two-layer design (system-prompt addition + first-turn nudge) preserves Bedrock prompt cache. Opt in via agent_def.memory_feature.enabled = true with a memory_id — see the Strands Long-Term User Memory guide.
  • Services library account-context utilitiesbatchGetUserCustomDataByUserIds(), configurable account-ID resolution via new PikaConfig.accountIdFieldNames / PIKA_ACCOUNT_ID_FIELD_NAMES env var, mergeSessionAttributes() helper, and CHAT_DEBUG_LOGS env gate for noisy chat-API debug logs. Defaults preserve current behavior.
  • Sync protectedAreas expanded to v1.0.6 — 9 new default-protected paths cover account/entity integration extension points, CDK stack-def files, and shared tooling. Run pika sync after upgrading to pick up the new list automatically.
  • Docker build-cache optimization in pika-chat-construct.tscacheFrom: [{ type: 'gha' }] is conditionally passed to DockerImageAsset when DOCKER_CACHE_FROM_GHA=true, enabling near-instant CDK asset publishing on GHA cache hit. Local builds unaffected.
  • 5 generic robustness improvements ported from ai-bot CM-491 — cookie error/version-mismatch split (preserves non-auth cookies on corruption), SSM ParameterNotFound graceful return, chatAppState null guards on route transitions, file-upload hardening (MIME allowlist + filename sanitization + S3 key validation), and isUserAllowedToUseSessionInsights made 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-lambda 3.974.0 and @aws-sdk/credential-provider-node 3.972.1 (patched fast-xml-parser for Snyk CVEs).
  • Strands converse Lambda max_tokens raised to 64000 - Both the main agent and collaborator BedrockModel configs 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 MaxTokensReachedException handling - 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.
  • useStrandsConverse prop on PikaChatConstruct - New optional boolean drives the converse Lambda SSM key (converse_url vs converse_strands_url). Reference bin/pika-chat.ts wires it from pikaConfig.siteFeatures?.strandsConverse?.enabled, so a single flag drives both the optional ConverseStrandsConstruct and the chat app's URL lookup. Closes a gap from 0.25.0 where the SSM key was hardcoded to converse_url, contradicting the conditional construct.
  • SessionInsightsSchedule is now flag-gated, with a finer-grained scheduleEnabled knob - The per-minute EventBridge rule that fires the insights runner Lambda is created only when sessionInsightsFeature.enabled is true AND sessionInsightsFeature.scheduleEnabled is not false. Set scheduleEnabled: false to 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.
  • userType and roles propagated to DDB on login - apps/pika-chat/src/hooks.server.ts now writes userType and roles from the auth provider through to ChatUser in DynamoDB, alongside firstName/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 test no longer hits AWS - apps/pika-chat/jest.config.js excludes test/integration/; services/pika/jest.config.cjs excludes chat-admin.test.ts and chat-session-os.test.ts. New test:integration script in apps/pika-chat/package.json for opt-in runs.
  • Optional Python (Strands) converse Lambda - New ConverseStrandsConstruct opt-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 = true and swap converse_urlconverse_strands_url in the chat app SSM lookup — see the Strands Converse guide
  • New Claude default models - DEFAULT_ANTHROPIC_MODEL bumped to Claude 4.5 Sonnet; DEFAULT_VERIFICATION_MODEL to 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 prevent ValidationException → "Oops! Something glitched"
  • Inference profile custom resource - No longer churns on every deployment (removed redundant timestamp property)
  • CDK bump - aws-cdk-lib^2.249.0, aws-cdk^2.1118.0 (required for Runtime.PYTHON_3_14)
  • Headless CI deploys - cdk:deploy now includes --require-approval never so IAM changes don't block on TTY prompts
  • 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
  • Server hook hardening - Timer leak fix, dead guard removal, and ?? nullish coalescing for transformCustomUserData
  • userType and roles persistence - updateUser() now writes userType and roles to DynamoDB, fixing silent data loss on login
  • 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__sendMessage and extracts clean text content
    • Falls back to original chunk if parsing fails — defensive against future Bedrock API changes
  • Agent model ID resolution - resolveModelId() automatically maps bare model IDs to inference profile IDs before Bedrock invocation
    • Fixes ValidationException when 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
  • Server Hooks Extension Point - New transformCustomUserData hook 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
  • External user chat app visibility fix - Fixed a bug where external users could not see any chat apps on the home page
    • The ChatAppLite mapping used the wrong property name (userTypesAllowed instead of userTypes)
    • The client-side filter defaulted all users to ['internal-user'], hiding chat apps from external users
    • Internal users were unaffected
  • CLI: Non-interactive sync mode - New --yes flag for pika sync auto-confirms all prompts
    • Enables pika sync in CI/CD pipelines and automated agent workflows without interactive input
    • When --yes is passed, breaking changes are also auto-acknowledged (no separate flag needed)
    • Existing interactive behavior is unchanged without the flag
  • Non-interactive release mode - Release tooling supports --non-interactive for CI/CD and AI agent workflows
    • Unified pnpm release --non-interactive auto-detects version bump from branch prefix
    • Gathers git context and outputs a self-contained prompt to stdout
    • Enables fully automated release documentation workflows
  • 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
  • Model ID validation fix - MODEL_ID_TO_MODEL now 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
  • 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
  • Custom field for agent definitions - Store arbitrary key/value data on agents via the new custom property
    • 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 - foundationModel and verificationFoundationModel are 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, and custom added to the update allowlist
  • Documentation - Agent Definition reference and Agent Tool type reference updated with custom field docs and model validation rules
  • 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"
  • Updateable agent fields - collaboratorContextFields and collaborators can 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
  • 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
  • Collaborator action groups fix - requireConfirmation on collaborator action group functions is now normalized to 'DISABLED' when it would otherwise be null, preventing AWS Bedrock invocation failures
  • 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
  • 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.md and RELEASE-SYSTEM-SUMMARY.md
  • CLI 1.4.1 Published - Run npm install -g pika-app@latest to update
  • Custom Logout Dialog - Replace the default logout dialog with a custom Svelte component
    • Registry pattern via $lib/custom/logout-dialog.ts - export your component or null
    • Full control over dialog appearance, button actions, and pre-logout operations
    • Access AppState for user data, custom data, and feature configuration
    • See Custom Logout Dialog guide
  • Client Lifecycle Hooks - Run custom code during page initialization and periodic polling
    • onInit runs once on page load, onPoll runs on each polling interval
    • Fetch external data and store it in user.customData for use across extension points
    • Configure in $lib/custom/client-lifecycle.ts - export functions or null to 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@latest to update
  • Stage Placeholder in URLs - Use {{stage}} placeholder in web component URLs for stage-specific deployments
  • Tag Definition Custom Resource API - Updated to use Stage and TagDefData properties
  • Various widget system fixes
  • 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
  • Hero Widget Persistence - Hero widgets now persist in DOM when hidden
    • Use heroDidShow event to refresh data when hero becomes visible again
    • Preserves widget state across visibility changes
  • 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
  • Hero Minimized Position - Collapsed hero now moves to top-left position alongside spotlight
  • 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) and dispatch (send to orchestrator)
    • Commands defined via intentRouterCommands on tag definitions
    • Admin UI at /admin/tag-definitions for 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, maxHeight constraints
  • Suggest Question API - Pre-fill chat input for AI helper buttons
    • suggestQuestion(text) expands chat pane and highlights input
  • Widget Ready Event - signalWidgetReady() and widgetReady event
  • Hero/Spotlight Events - Detailed lifecycle events for state coordination
  • Widget Tag ID - ctx.tagId automatically provided to widgets
  • Hero Rendering Context - New singleton widget area for dominant display elements
    • API-controlled visibility via showHero(), hideHero(), closeHero()
    • Configurable sizing with minHeight, maxHeight, preferredHeight
  • Companion Mode - Application-first UX where canvas widgets become primary
    • Enable via companionMode: true in canvas widget options
    • Chat pane becomes compact, spotlight and hero hidden
  • 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 instanceId passed to addEventListener()
  • Full Control Canvas Widgets - Widgets render their own chrome
    • Enable via fullControl: true, use requestCanvasClose() to close
  • Close Configuration - Configure canvas close behavior with confirmation dialogs
  • CLI Package Published - Published pika-app CLI version 1.3.1 to npm with sync fixes
    • Run npm install -g pika-app@latest to get the updated CLI
    • Includes fixes from 0.16.6 (glob pattern protection) and 0.16.7 (__dirname error fix)
  • Sync Protected Areas Config Loading Fix - Fixed __dirname error preventing protected areas config from loading
    • The CLI uses ES modules where __dirname is not available
    • Added ES module compatible __dirname using fileURLToPath(import.meta.url)
    • Ensures custom directories are always protected even if config file cannot be loaded
  • Sync Protected Areas Bug Fix - Fixed glob patterns not protecting parent directories
    • Pattern path/to/custom/** now correctly protects the custom directory itself
    • Previously, directories matching the parent of a /** glob would be deleted during sync
  • destructive-bg Theme 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
  • 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 icon on individual assistants or defaultAssistantIcon for global default
    • Configurable icon size with assistantIconSize
  • Custom Header Icon - Replace the AI sparkle icon in chat app headers
    • chatAppHeaderIcon in 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.

  • Theme File Organization - Simplified theme file structure for clearer workflow
    • Renamed theme-config.ts to sample-purple-theme.ts to clarify it's a sample to copy
    • Removed redundant examples/ folder (sample theme serves as the example)
  • 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 themeConfigPath from pika-config.ts dynamically
  • Theme CLI Fixes - Fixed hardcoded theme path references in CLI commands
  • Release Tool Fix - Now reads from origin/main for accurate version detection
  • Release Tooling - Improved release prompt templates to ensure complete documentation updates
    • Release prompts now require updating index.mdoc for ALL releases (not just breaking changes)
    • Added missing 0.16.0 and 0.16.1 content to releases overview page
  • 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
  • UI Theming System - Complete theming system for customizing colors, typography, and visual styling
    • New customTheme configuration in siteFeatures.uiCustomization to 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
  • Theme CLI Commands - New pika theme command for theme management
    • pika theme check - Verify theme schema version and see available updates
    • pika theme update - Add new theme variables when framework updates introduce them
    • pika theme list - Display all available CSS variables with descriptions and defaults
    • pika 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 values
    • getPikaThemeTokens() - 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.

  • 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
  • Opensearch Type Issue - Fixed minor opensearch type issue
    • Fixed issue where metrics were not corectly being transformed on way in/out of opensearch
  • 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)
  • 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:

Terminal window
cat .pika-sync.json | grep pikaVersion
  • 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 metadata
    • backfill-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.

  • 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
  • Bug Fix - Fixed stack tags to ensure they are converted to required string type before being applied to Bedrock inference profiles
  • Component Tags for Granular Cost Tracking - Enhanced stack tagging with component-level identification
    • New componentTagNames array in stackTags configuration 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 component tag to see costs for each function separately
    • Particularly valuable for Bedrock costs - track which AI models consume the most
    • Helper method applyComponentTags() in custom-stack-defs.ts for easy tagging of custom infrastructure
    • See AWS CDK deployment guide Component Tags section
  • Tag Environment Variable Support - CloudFormation custom resources can now access and apply tags
    • Tags passed to custom resource Lambdas via STACK_TAGS and COMPONENT_TAG_NAMES environment variables
    • New utility functions: getStackTagsFromEnv(), getComponentTagNamesFromEnv(), createComponentTags(), etc.
    • Bedrock inference profiles and KMS keys now properly tagged with component identifiers
  • 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.0 annotation:
    • 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.

  • 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 stackTags for flexible cost allocation
    • See Track AI Model Costs guide
  • AWS Resource Tagging System - Comprehensive tagging for cost tracking, organization, and compliance
    • New stackTags configuration in pika-config.ts with common, pikaServiceTags, and pikaChatTags categories
    • 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
  • Type Additions - New interfaces with @since 0.13.0 annotations:
    • PikaConfig.stackTags - AWS resource tagging configuration
    • MarkdownRendererConfig - Markdown renderer options
    • IAppState.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.

  • 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
  • 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 GetValuesForEntityListRequest and GetValuesForEntityListResponse interfaces with @since 0.12.0 annotations
  • 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 --visualdiff mode 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
  • CI/CD Pipeline Fix - Fixed pnpm lockfile synchronization issue
    • Resolved ERR_PNPM_OUTDATED_LOCKFILE error in GitHub Actions workflows
    • Regenerated lockfile to sync dependency ordering with package.json files
    • Ensures successful frozen-lockfile installation in CI environments
  • Site Admin Type Safety Improvements - Fixed TypeScript type handling in site admin pages
    • Removed unnecessary as any type 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
  • 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
  • Automatic User Profile Sync - Framework syncs firstName/lastName from auth provider
  • Type Organization Improvements - Better organized TypeScript types with @since annotations

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.

  • 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
  • Widget Instance Registry - Comprehensive tracking system for all rendered web components
  • Centralized registry accessible via chatAppState.widgetInstances with 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
  • Web Component Initialization Enhancement - Direct property and attribute setting when rendering components
  • New DataForWidget interface with attributes, properties, and onReady callback
  • 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
  • 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
  • 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
  • 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

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.

  • Breaking changes: Released promptly with migration guides
  • New features: Batched when ready (typically every 2-4 weeks)
  • Bug fixes: Released as needed

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 sync handles updates intelligently

Update to the latest version:

Terminal window
# See what will change
pika sync --dry-run
# View detailed diffs
pika sync --diff
# Apply updates
pika sync

The sync command will:

  1. Check your current version
  2. Download the latest framework
  3. Show you what's changed
  4. Warn about breaking changes
  5. Preserve your customizations
  6. Apply updates safely

When breaking changes are introduced:

  • Automatic detection - pika sync will detect breaking changes
  • Block sync - Won't proceed without acknowledgment
  • Clear guidance - Links to migration guides
  • Manual steps - Detailed instructions for required changes

VersionDateTypeSummary
0.26.0May 26 2026FeatureCM-491 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.2May 4 2026PatchStrands converse Lambda: raise max_tokens to model capacity (64K), add explicit MaxTokensReachedException handler
0.25.1May 4 2026PatchBack-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.0Apr 23 2026FeatureOptional Python (Strands) converse Lambda, Claude 4.5/4.6 default models, streaming heartbeats, post-processor rewrite
0.24.0Mar 30 2026FeatureCollaborator directive injection, server hook hardening, userType/roles persistence
0.23.2Mar 12 2026PatchFix raw Bedrock API response JSON in multi-agent chat output
0.23.1Mar 12 2026PatchResolve agent model IDs through inference profile mapping
0.23.0Mar 12 2026FeatureServer hooks extension point for customUserData transformation
0.22.1Mar 10 2026PatchFix external users unable to see chat apps on home page
0.22.0Mar 9 2026FeatureNon-interactive sync mode with --yes flag
0.21.0Mar 4 2026FeatureNon-interactive release mode, AGENTS.md context file
0.20.2Mar 3 2026PatchModel ID validation accepts base model IDs
0.20.1Mar 3 2026PatchSession ID visible to all users in chat titlebar
0.20.0Feb 26 2026FeatureCustom agent field, updatable foundation models, model validation
0.19.5Feb 23 2026FeatureSession context for collaborators via collaboratorContextFields
0.19.4Feb 17 2026PatchAdmin settings button accessible on all admin pages
0.19.3Feb 13 2026PatchCollaborator requireConfirmation normalized to prevent Bedrock invocation failures
0.19.2Feb 9 2026PatchFixed chat titlebar blocked by content overlap
0.19.1Feb 5 2026PatchCLI fix: framework-internal files no longer sync to user projects
0.19.0Feb 5 2026FeatureCustom logout dialog, client lifecycle hooks
0.18.5Jan 26 2026FeatureStage placeholder in web component URLs
0.18.4Jan 26 2026PatchVarious widget system fixes
0.18.3Jan 25 2026PatchHero restoration on companion mode exit
0.18.2Jan 25 2026PatchHero persistence, widget stability fixes
0.18.1Jan 25 2026PatchHero minimized position fix
0.18.0Jan 24 2026FeatureIntent Router, collapsible hero, suggestQuestion API
0.17.0Jan 21 2026FeatureHero context, companion mode, event system
0.16.8Jan 20 2026PatchPublished CLI 1.3.1 with sync fixes
0.16.7Jan 20 2026PatchFixed sync config loading __dirname error
0.16.6Jan 19 2026PatchFixed sync protected areas glob bug
0.16.5Jan 19 2026PatchAdded destructive-bg theme variable
0.16.4Jan 19 2026FeatureHome page redesign with customizable branding
0.16.3Jan 19 2026PatchTheme file organization and CLI fixes
0.16.2Jan 19 2026PatchRelease tooling improvements
0.16.1Jan 19 2026PatchDocumentation build fix for theming guide
0.16.0Jan 19 2026FeatureUI Theming System with CLI commands
0.15.5Nov 12 2025PatchChat session issue fix
0.15.4Nov 4 2025PatchOpensearch type issue fix
0.15.3Nov 4 2025PatchCost distribution charts and auto insights fix
0.15.2Nov 3 2025PatchAnalytics tool flushing issue fix
0.15.1Nov 3 2025PatchBackfill tool robustness and performance fixes
0.15.0Nov 3 2025BreakingMessage-level analytics and content search
0.14.2Nov 2 2025PatchAdmin site session insights improvements
0.14.1Nov 1 2025PatchBedrock inference profile stack tag type fix
0.14.0Nov 1 2025FeatureComponent-level tagging for granular cost tracking
0.13.0Oct 31 2025FeatureInference profile cost tracking and AWS resource tagging
0.12.0Oct 31 2025FeatureEntity method addition and analytics UI improvements
0.11.3Oct 30 2025Patchpika-cli sync improvements and minor fixes
0.11.2Oct 30 2025PatchCI/CD pipeline lockfile sync fix
0.11.1Oct 30 2025PatchType safety improvements in site admin pages
0.11.0Oct 30 2025BreakingSession analytics and widget metadata system
0.10.0Oct 28 2025FeatureContext-aware widgets and dynamic spotlight
0.9.0Oct 27 2025FeatureComplete documentation site overhaul
0.8.0Oct 24 2025FeatureWidget instance registry with DOM tracking
0.7.0Oct 24 2025FeatureWeb component initialization enhancement
0.6.2Oct 22 2025PatchChat input height fix
0.6.1Oct 21 2025PatchS3 file content route fixes
0.6.0Oct 21 2025FeatureS3 file access for web components
0.5.2Oct 21 2025PatchInstruction augmentation fixes
0.5.1Oct 21 2025PatchSession source field fix
0.5.0Oct 21 2025BreakingTag system refactor + Chat session GSI update
0.4.0Oct 20 2025StableInitial tracked release


Keep your project updated:

Terminal window
# Check for updates regularly
pika sync --dry-run

  • Not sure if you should upgrade? Check the changelog for your version
  • Breaking change coming? Migration guides provide complete instructions
  • Sync issues? See Troubleshooting