Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 0 additions & 19 deletions .changeset/async-fetch-error-state.md

This file was deleted.

19 changes: 0 additions & 19 deletions .changeset/cool-badgers-type.md

This file was deleted.

36 changes: 36 additions & 0 deletions packages/core/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,41 @@
# @tailor-platform/app-shell

## 1.10.0

### Minor Changes

- 73d0c0a: Add a built-in error state to `Combobox.Async`, `Autocomplete.Async`, and `Select.Async`

When an async fetcher throws or rejects, the components now render an inline error state in the popover — a "Couldn't load results." message plus a **Retry** button that re-runs the last fetch — instead of silently falling back to the misleading "No results." empty state. This makes failed fetches distinguishable from genuinely-empty results without any consumer code.

The debounce/abort lifecycle is handled centrally: aborted/superseded requests are ignored, and outages are de-duped so typing during an outage doesn't stack repeated announcements.

Three new props on each `.Async` component:

| Prop | Type | Default | Description |
| -------------- | -------------------------- | -------------------------- | ------------------------------------------------------------------ |
| `errorText` | `string` | `"Couldn't load results."` | Message shown in the popover when the fetcher fails |
| `retryText` | `string` | `"Retry"` | Label for the retry button |
| `onFetchError` | `(error: unknown) => void` | - | Called once per outage when a fetch fails (logging/error tracking) |

The `Combobox.useAsync` / `Autocomplete.useAsync` / `Select.useAsync` hooks now also expose `error` and a `retry()` function and accept an `onFetchError` option, for consumers building custom compositions with `Parts`.

- 16c1046: Add a built-in `/__appinfo` page to `AppShell` for exposing app metadata and the current AppShell version.

```tsx
<AppShell
title="My App"
appInfo={{
metadata: [
{ label: "Environment", value: "staging" },
{ label: "Release", value: "2026.07.16" },
],
}}
/>
```

The page stays out of AppShell's built-in auto-generated sidebar navigation, appears in the Command Palette as a page entry, and includes a copy button for the rendered app information.

## 1.9.0

### Minor Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/core/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@tailor-platform/app-shell",
"version": "1.9.0",
"version": "1.10.0",
"description": "An opinionated React application framework for building ERP applications on Tailor Platform",
"keywords": [
"app-shell",
Expand Down