Foxl v0.4.15: The Tabs That Vanished (and the Phone That Forgot)
Skills, Channels, and custom MCP tools were still in the app but unreachable, because their tab bar lived in a header that Settings never renders. v0.4.15 restores the tabs inside Settings, removes the gradient carousels, and fixes several mobile bugs with one cause: iOS routinely restarts a suspended app from scratch.

On this page
Foxl v0.4.15 started with a bug report we wrote ourselves, in the tone of a user who has just lost something: "where did custom MCP and all the skills go?" Nothing had been deleted. The pages still existed and still worked, but nothing in the navigation led to them any more. This release restores them, redesigns the surface they live on, and closes a batch of mobile issues that turned out to share one root cause.
Five tabs, one orphaned tab bar
When Integrations moved from the sidebar into Settings in v0.4.10, it brought only itself. The page had actually been a five-tab hub - Integrations, Skills, Channels, and the System and Custom tool pages where custom MCP servers are configured - but the tab bar lived in the app header, and the app header only renders for the old standalone route. Inside the Settings sheet, the section showed tab one and nothing else. Skills, Channels, and every custom tool became unreachable for anyone navigating the UI, with no error shown.
Settings > Integrations now carries all five tabs inside the section as a segmented control, on desktop and on the phone. The section also owns its own scrolling now - inside the Settings sheet each section must scroll itself, and Integrations didn't, which is why it sat frozen at the top on mobile.
The gradients are gone
Integrations and Skills each opened with a full-color gradient carousel that crossfaded through six stacked layers every five seconds. It was the most prominent thing in Settings, and on a phone it was a constant compositor cost that made scrolling less smooth. Both pages now open with a single flat strip: one featured integration, a real example prompt, and a Try-in-chat button - tap the strip to see the next example. No ambient animation is left anywhere in Settings.
Why the phone kept showing spinners
Three separate complaints - Workspace loads slowly, Usage loads slowly, and the account name gets stuck as "..." - turned out to have the same cause in the iOS app lifecycle. iOS tears down a suspended app's web process routinely, and every relaunch starts JavaScript from zero. Anything cached only in memory or in sessionStorage is gone; anything that trusted a long-lived session token meets one that expired while the phone was in a pocket.
Workspace and Usage now persist their last real data durably: reopen the app and the file tree and usage numbers paint instantly from the previous visit while a background refresh replaces them. The "..." bug had the same cause, applied to a token: the profile lookup sent the expired session token, got rejected, and never retried - on the web a manual refresh papered over it, but the app has no refresh gesture. The lookup now refreshes the token first, re-runs whenever a refresh happens or the app returns to the foreground, and keeps showing the cached name instead of blanking while it revalidates.
Small mobile things that weren't small
A tall message bar - a multi-line draft, a pasted-text card - used to sit on top of the last messages with no way to scroll them clear, because the conversation's bottom scroll room was sized for the one-line bar. The scroll area now tracks the composer's real height, and if you're reading the bottom, the last bubble rises with the bar instead of sliding under it.
The X that removes an attachment from the message bar only appeared on hover. Touch screens do not hover, so on the phone there was no visible way to remove an attachment at all. The X is now always visible on touch devices as a quiet gray chip, slightly larger for the finger - and desktop adopted the same gray on hover, because removing a draft attachment is routine, not destructive, and never needed a warning red. And the Usage Breakdown chart in Account folds behind its headline total on mobile, so the number you actually check stays on screen instead of below a dozen bar rows.
The lesson we keep re-learning
Two patterns from this release apply beyond it. First, when a surface moves, grep for what pointed at it: the five-tab bar lived in a header that only renders on the standalone route, so the move orphaned four pages without an error. Second, on iOS, treat every launch as a cold start. Memory caches, session storage, and unexpired tokens are all desktop assumptions; the phone violates each of them several times a day, and every violation looks like "the app is slow" or "the app forgot me" to the person holding it.
Upgrading
The web app at app.foxl.ai updates automatically. The desktop app updates itself, or grab the latest from the Foxl homepage. The iOS build is rolling out through TestFlight. The full list of changes is in the changelog.
References and further reading
- Foxl v0.4.15 changelogRelease
- Download FoxlReference