Skip to content

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 17 Feb 21:16
· 351 commits to main since this release
Immutable release. Only release title and notes can be modified.
8354e74

@frontman/client

Minor Changes

  • 99f8e90 Thanks @BlueHotDog! - Add file and image attachment support in the chat input. Users can attach images and files via drag & drop, clipboard paste, or a file picker button. Pasted multi-line text (3+ lines or >150 chars) is collapsed into a chip. Attachments are sent as ACP resource content blocks with base64-encoded blob data and rendered as thumbnails in both the input area and message history with a lightbox preview.

  • 99f8e90 Thanks @BlueHotDog! - Add cancel/stop generation support. Users can now stop an in-progress AI agent response by clicking a stop button in the prompt input. Implements the ACP session/cancel notification protocol for clean cancellation across client, protocol, and server layers.

  • #342 023e9a4 Thanks @itayadler! - Add current page context to agent system prompt. The client now implicitly collects page metadata (URL, viewport dimensions, device pixel ratio, page title, color scheme preference, scroll position) from the preview iframe and sends it as an ACP content block with every prompt. The server extracts this data and appends a [Current Page Context] section to user messages, giving the AI agent awareness of the user's browsing context for better responsive design decisions and route-aware suggestions.

  • #372 2fad09d Thanks @itayadler! - Add first-time user experience (FTUE) with welcome modal, confetti celebration, and provider connection nudge. New users see a welcome screen before auth redirect, a confetti celebration after first sign-in, and a gentle nudge to connect an AI provider. Existing users are auto-detected via localStorage and skip all onboarding flows.

Patch Changes

  • #379 68b7f53 Thanks @BlueHotDog! - Fix source location detection for selected elements in Astro projects.

    • Refactor Astro integration from Astro middleware to Vite Connect middleware for more reliable request interception
    • Capture data-astro-source-file/data-astro-source-loc annotations on DOMContentLoaded before Astro's dev toolbar strips them
    • Add ancestor walk fallback (up to 20 levels) so clicking child elements resolves to the nearest annotated Astro component
    • Harden integration: ensureConfig guard for no-args usage, duplex: 'half' for POST requests, headersSent guard in error handler, skip duplicate capture on initial astro:page-load
    • Add LLM error chunk propagation so API rejections (e.g., oversized images) surface to the client instead of silently failing
    • Account for devicePixelRatio in screenshot scaling to avoid exceeding API dimension limits on hi-DPI displays
  • 99f8e90 Thanks @BlueHotDog! - Fixed click-through on interactive elements (links, buttons) during element selection mode by using event capture with preventDefault/stopPropagation instead of disabling pointer events on anchors

  • 99f8e90 Thanks @BlueHotDog! - Remove dead initialization timeout code (StartInitializationTimeout, InitializationTimeoutExpired, ReceivedDiscoveredProjectRule) that was never wired up — sessionInitialized is set via SetAcpSession on connection

  • #357 ebec53a Thanks @itayadler! - Redesign authentication UI with dark Frontman branding. The server-side login page now features a dark theme with the Frontman logo and GitHub/Google OAuth buttons only (no email/password forms). Registration routes redirect to login. The root URL redirects to the sign-in page in dev and to frontman.sh in production. The client-side settings modal General tab now shows the logged-in user's email, avatar, and a sign-out button. The sign-out flow preserves a return_to URL so users are redirected back to the client app after re-authenticating.

  • #377 15c3c8c Thanks @itayadler! - ### Fixed

    • Stream tool_call_start events to client for immediate UI feedback when the LLM begins generating tool calls (e.g., write_file), eliminating multi-second blank gaps
    • Show "Waiting for file path..." / "Waiting for URL..." shimmer placeholder while tool arguments stream in
    • Display navigate tool URL/action inline instead of hiding it in an expandable body

@frontman-ai/astro

Patch Changes

  • #379 68b7f53 Thanks @BlueHotDog! - Fix source location detection for selected elements in Astro projects.

    • Refactor Astro integration from Astro middleware to Vite Connect middleware for more reliable request interception
    • Capture data-astro-source-file/data-astro-source-loc annotations on DOMContentLoaded before Astro's dev toolbar strips them
    • Add ancestor walk fallback (up to 20 levels) so clicking child elements resolves to the nearest annotated Astro component
    • Harden integration: ensureConfig guard for no-args usage, duplex: 'half' for POST requests, headersSent guard in error handler, skip duplicate capture on initial astro:page-load
    • Add LLM error chunk propagation so API rejections (e.g., oversized images) surface to the client instead of silently failing
    • Account for devicePixelRatio in screenshot scaling to avoid exceeding API dimension limits on hi-DPI displays
  • 99f8e90 Thanks @BlueHotDog! - Fix missing host param in Astro config that caused the client to crash on boot. Both Astro and Next.js configs now assert at construction time that clientUrl contains the required host query param, using the URL API for proper query-string handling.

@frontman/frontman-client

Minor Changes

  • 99f8e90 Thanks @BlueHotDog! - Add file and image attachment support in the chat input. Users can attach images and files via drag & drop, clipboard paste, or a file picker button. Pasted multi-line text (3+ lines or >150 chars) is collapsed into a chip. Attachments are sent as ACP resource content blocks with base64-encoded blob data and rendered as thumbnails in both the input area and message history with a lightbox preview.

  • 99f8e90 Thanks @BlueHotDog! - Add cancel/stop generation support. Users can now stop an in-progress AI agent response by clicking a stop button in the prompt input. Implements the ACP session/cancel notification protocol for clean cancellation across client, protocol, and server layers.

Patch Changes

  • #336 b98bc4f Thanks @BlueHotDog! - Suppress Sentry error reporting during Frontman internal development via FRONTMAN_INTERNAL_DEV env var

@frontman/frontman-core

Patch Changes

@frontman-ai/nextjs

Minor Changes

  • #335 389fff7 Thanks @itayadler! - Add AI-powered auto-edit for existing files during npx @frontman-ai/nextjs install and colorized CLI output with brand purple theme.
    • When existing middleware/proxy/instrumentation files are detected, the installer now offers to automatically merge Frontman using an LLM (OpenCode Zen, free, no API key)
    • Model fallback chain (gpt-5-nano → big-pickle → grok-code) with output validation
    • Privacy disclosure: users are informed before file contents are sent to a public LLM
    • Colorized terminal output: purple banner, green checkmarks, yellow warnings, structured manual instructions
    • Fixed duplicate manual instructions in partial-success output

Patch Changes

  • #337 7e4386f Thanks @itayadler! - Move installer to npx-only, remove curl|bash endpoint, make --server optional

    • Remove API server install endpoint (InstallController + /install routes)
    • Make --server optional with default api.frontman.sh
    • Simplify Readline.res: remove /dev/tty hacks, just use process.stdin
    • Add config.matcher to proxy.ts template and auto-edit LLM rules
    • Update marketing site install command from curl to npx @frontman-ai/nextjs install
    • Update README install instructions
  • #336 b98bc4f Thanks @BlueHotDog! - Suppress Sentry error reporting during Frontman internal development via FRONTMAN_INTERNAL_DEV env var

  • 99f8e90 Thanks @BlueHotDog! - Fix missing host param in Astro config that caused the client to crash on boot. Both Astro and Next.js configs now assert at construction time that clientUrl contains the required host query param, using the URL API for proper query-string handling.

@frontman/frontman-protocol

Minor Changes

  • 99f8e90 Thanks @BlueHotDog! - Add protocol versioning, JSON Schema export, and cross-language contract tests. Protocol types are now the single source of truth, with schemas auto-generated from Sury types and validated in both ReScript and Elixir. Includes CI checks for schema drift and breaking changes.

@frontman-ai/vite

Minor Changes

  • #355 84b6d9b Thanks @itayadler! - Add @frontman-ai/vite package — a ReScript-first Vite integration with CLI installer (npx @frontman-ai/vite install), replacing the old broken @frontman/vite-plugin.
    • Vite plugin with configureServer hook and Node.js ↔ Web API adapter for SSE streaming
    • Web API middleware serving Frontman UI, tool endpoints, and source location resolution
    • Config with automatic isDev inference from host (production = api.frontman.sh, everything else = dev)
    • CLI installer: auto-detects package manager, analyzes existing vite config, injects frontmanPlugin() call
    • Process shim for production client bundle (Vite doesn't polyfill Node.js globals in browser)