---
title: "Foxl v0.2.13: Pixel Office Redesign, Deep-Linkable Notifications"
description: "Historical release notes for the Pixel Office interface, persisted state, agent deep links, and a corrected Windows OAuth flow."
author: "Foxl Team"
date_published: "2026-04-18"
date_modified: "2026-07-16"
canonical_url: "https://foxl.ai/blog/v0-2-13"
markdown_url: "https://foxl.ai/blog/v0-2-13/index.md"
image: "https://foxl.ai/blog/pixel-office-hero.png"
social_image: "https://foxl.ai/blog/social/v0-2-13.png"
content_type: "Release note"
topics: ["Desktop UI","Deep links","Windows OAuth"]
products: ["Foxl Agent"]
---

<!-- Generated by scripts/blog-publishing.mjs; do not edit. -->

# Foxl v0.2.13: Pixel Office Redesign, Deep-Linkable Notifications

> A cozy Pixel Office redesign with 2.5D sprites, real-time pet-position persistence, agent-completion notifications that deep-link to the finished agent, and Claude Code OAuth on Windows fixed for real.

- Author: Foxl Team
- Published: 2026-04-18
- Last reviewed: 2026-07-16
- Reading time: 5 minutes
- Canonical HTML: [https://foxl.ai/blog/v0-2-13](<https://foxl.ai/blog/v0-2-13>)

![The v0.2.13 Pixel Office interface with active agents represented inside the desktop workspace.](<https://foxl.ai/blog/pixel-office-hero.png>)

Foxl v0.2.13 ships a full Pixel Office redesign, a 2.5D sprite layer for tall furniture, pet-position persistence, and the first session-aware agent notifications. It also addresses Feed Generator timing, Windows Claude Code credentials, restart cleanup, and large schedule histories.

## Pixel Office, redesigned end-to-end

We rebuilt every tile. The old office was flat and cold; the new room uses warm walls, a tiled floor, framed windows, ceiling fans, wall decorations, and ambient light. Furniture now shares one compact palette so desks, plants, lamps, shelves, and the kitchenette read as parts of the same room.

The default layout separates four workstations, a meeting area, a lounge, and a kitchenette. Desk accessories are chosen deterministically from tile position, so the scene stays varied without flickering between renders.

## 2.5D sprites without collisions

Tall objects can now draw above their grid footprint. Explicit draw order keeps lamps, plants, shelves, and whiteboards from clipping into the wall or neighboring furniture while collision still uses the smaller floor footprint.

## Pets rotate, and the working one is clickable

Agent assignments no longer always choose the first pet and first seat. Random selection lets different pets take a workstation over time.

Selecting a working pet now shows its task, current tool, error state, elapsed time, and Stop and Open Full actions. You can inspect a run without first leaving the office.

## Positions persist, even across reloads

Position, facing direction, and activity state are saved to local storage every three seconds and again when the tab is hidden or closed. The server keeps one overwrite-in-place backup of the broader Pixel Office state and can restore it when that copy is newer.

Local storage remains authoritative. The server copy is a fallback, not version history or multi-device synchronization, and relay-only clients do not push this backup. A crash inside the three-second window can still lose the latest movement.

## Rare encounters and away progress

Earlier work in the same release adds an 18-entry rare-encounter journal, season and time gates, a welcome-back summary, and wall-clock catch-up after an absence. Pets replace the older human sprites, the visitor and auto-forage systems are retired, and inventory focuses on placeable office items.

## Session-aware notifications and restart cleanup

Agent-completion notifications now carry the session ID needed to target an agent detail page. The in-app notification center also gains action metadata, while native notifications can hand an action back to the renderer.

Restart and update-install paths now stop the local server child and tunnel before Electron relaunches or hands off to the updater. This prevents an orphaned process from retaining the local port after the window exits.

> **Correction (May 11, 2026):** v0.2.13 established session metadata and server cleanup, but the original post overstated end-to-end notification reliability. v0.2.17 fixed body-click routing, v0.2.18 removed a duplicate update toast, v0.2.23 carried resource IDs through the full native and renderer path, and v0.2.29-v0.2.30 fixed the remaining macOS Install Now failures.

## Claude Code credentials on Windows

The Windows OAuth lookup depended on `Get-StoredCredential` and `New-StoredCredential` from a PowerShell module that Windows does not install by default. The failed shell calls made valid Claude Code logins look absent.

Foxl now reads and refreshes `%USERPROFILE%\.claude\.credentials.json` directly on Windows. Linux uses the equivalent file under `~/.claude`; macOS continues to use the Claude Code Keychain entry. The current [Claude Code provider setup](<https://docs.foxl.ai/docs/desktop/providers>) covers the supported login flow; run `claude /login` or `claude setup-token` if no valid credential exists.

> **Provider update (April 21-22, 2026):** the credential-path fix remained, but v0.2.15 temporarily disabled Claude Code OAuth after subscription requests were routed to extra usage. v0.2.16 restored it with compatibility constraints, and v0.2.18 retained that supported path. Credential discovery and provider compatibility are separate checks.

## Feed Generator: one timer, one source of truth

Changing Feed Generator frequency could leave its previous interval running because the auto-seeded Heartbeat schedule and the dedicated runner each owned a timer.

The dedicated runner now owns execution. The Heartbeat row in Schedules reflects its state but does not start a second timer, and `HEARTBEAT.md` remains the configuration source. Each workspace has one Feed Generator heartbeat; use the [Cron scheduling workflow](<https://docs.foxl.ai/docs/desktop/scheduling>) for other recurring work.

## Large schedule histories

Recent Runs now loads 50 executions at a time as you scroll instead of rendering an unbounded history. The loaded count makes partial results visible.

Filters and sorting still apply to the executions currently loaded in the browser, not to unseen pages. The Heartbeat detail view shows the current `HEARTBEAT.md` content read-only.

## Fixes grab-bag

- Feed sidebar black dot that could not be dismissed (legacy Activities-era code).
- Goal-started agents receive their own session rows in history.
- The agent popover deduplicates the live default row and its persisted session.
- Sidebar label "Agent Team" simplified to "Agents" across all 10 locales.
- i18n interpolation now accepts both `{var}` and `{{var}}` placeholder styles.
- Working-pet monitor animation aligns with the desk and runs at a lower refresh rate.
- Wall-anchored tall items no longer disappear at the wall seam.
- The obsolete Background Pet Simulation toggle is removed.

## Upgrade and verify

v0.2.13 shipped through auto-update on macOS and Windows, preserving existing Pixel Office state and `HEARTBEAT.md`. After updating to a current patch, reload the Agents page and confirm pet positions return from the last saved snapshot. Run Feed Generator once and verify that only one Heartbeat execution appears. On Windows, refresh Providers after `claude /login` and send a short test prompt. Use Settings > Notifications to test deep links on the current build rather than relying on v0.2.13 behavior.

Read the [full Foxl changelog](<https://foxl.ai/changelog>) or download the [Foxl v0.2.13 GitHub release](<https://github.com/foxl-ai/foxl/releases/tag/v0.2.13>).

## References and further reading

1. [Download the current Foxl release](<https://docs.foxl.ai/docs/get-started/download>) - Documentation
2. [Foxl release history](<https://foxl.ai/changelog>) - Release