# Approve

Approve brings project planning, issue tracking, and team updates into one workspace\.

**Status:** Live · **Platform:** Web · iOS · CLI · MCP

Live site: <https://approve.so/>

**Approve** is a workspace for planning projects, tracking issues, and keeping team conversations close to the work. Projects bring together issues, milestones, timelines, documents, and resources; the inbox collects updates that need attention.

The web app is built with Astro, React, and [Loomup](https://tryloomup.com), with an iOS app, CLI, and MCP tools alongside it. Local data keeps saved work available between connections, while synchronization brings changes back into view.

The current focus is making everyday work easier to follow: clearer notifications, less waiting when opening or creating issues, and reliable state across retries and reconnects.

## Work log

### 15 November 2026 · IST

#### Early\-access request setup

- Enabled early\-access requests in the application configuration and configured restricted reviewer access\.

### 14 November 2026 · IST

#### Safer issue edits and retries

- Made issue updates and deletions check the current edit version, permissions and labels in one transaction, preventing partial writes when another edit wins\.
- Added durable retry receipts across the API and MCP tools so an interrupted request can recover its result without repeating the change\.
- Prevented early\-access forms from submitting before their controls are ready, keeping applicant details out of URL queries\.

### 13 November 2026 · IST

#### Issue autosave, inbox actions and agent guidance

- Added an inbox action to mark notifications for currently completed tasks as read, leaving later arrivals unread\.
- Added team name and size fields to early\-access requests\.
- Added a downloadable MCP skill covering tool selection, pagination and authorized changes\.
- Made issue autosave follow verified connection recovery, resuming pending drafts without waiting for a browser online event while keeping conflicting edits paused\.

### 12 November 2026 · IST

#### More reliable reconnects and account deletion

- Improved login and workspace recovery using observed connection failures instead of browser online hints, with safe onboarding retries after reconnecting\.
- Reworked account soft deletion with atomic ownership checks, retained data, access blocking and retryable connected\-agent cleanup\.

### 4 November 2026 · IST

#### Project progress and avatar controls

- Added workspace and project progress pages with completed work, milestone warnings, activity charts and finish forecasts when enough data is available\.
- Required login and a valid workspace for progress pages, and made timeline\-entry wording consistent\.
- Made iOS avatar changes recover from lost save responses, check the intended account and current image, and ask before removal\.
- Added email\-verified signup and workspace onboarding, with password checks before confirming an email address\.
- Added workspace soft deletion with name confirmation, retained content and support\-led restoration\.
- Prepared account\-deletion screens with impact previews, ownership checks and status recovery after interrupted requests\.
- Logged web avatar changes and retained replaced images, with recovery after lost save responses\.
- Hid empty project groups, fixed avatar URLs in issue activity and dependencies, and added confirmation before unpublishing timeline entries\.

### 3 November 2026 · IST

#### A clearer iOS board and inbox

- Hid empty board columns for the currently loaded, filtered issues, with more columns appearing as additional issues load\.
- Made inbox rows more compact and added current project names while preserving useful comment and status details\.

### 31 October 2026 · IST

#### Quicker issue creation and clearer issue lists

- Integrated a New issue button in the header, the current workspace name and a clearer navigation\-menu indicator\.
- Integrated inline stale warnings on issue cards, a three\-label preview with an overflow count, clearer select\-all wording and a direct link from a single\-project filter to its project\.

### 30 October 2026 · IST

#### Clearer settings, project lists and documents

- Reorganized workspace settings into direct tabs, added member search, and separated project details from access settings\.
- Added open\-issue counts to project lists, put active milestones first, and made blocked issues easier to spot while hiding empty relationship sections\.
- Made desktop document views open the latest document, added clearer titles and update dates, and brought save status and delete actions into the editor toolbar\.
- Added Copy link for project resources for all members, and simplified timeline entry actions\.
- Integrated the redesigned homepage, with product previews, plan cards and more compact mobile layouts\.

### 29 October 2026 · IST

#### Hide sub\-issues across web, iOS, CLI and MCP

- Added an optional “Hide sub\-issues” filter on web and iOS, keeping standalone and parent issues in view while preserving sub\-issues inside their parent’s details\.
- Saved filter preferences and applied filtering before pagination, including offline lists on iOS\.
- Added matching CLI and MCP options, with regression tests for filtering, saved preferences and pagination\.

### 28 October 2026 · IST

#### Clearer inbox updates and quicker issue workflows

- Reworked inbox rows to show the issue title once, followed by who changed what, comment previews or status transitions, and the issue's current status\. Older notifications keep useful descriptions, and long status names wrap on small screens\.
- Moved notification preferences into a settings popover that stays accessible even when the inbox is empty\.
- Issue details now show the saved milestone immediately\. Available milestones load when the picker opens, while the current selection stays visible through loading and retries\.
- Newly created issues open after their labels, images, and attachments are saved locally, without waiting for background synchronization\. Reloads and retries preserve the creation state, and fresh synchronization clears it without hiding later changes\.
- Reduced sequential waiting in issue activity by running independent history reads together and reusing repeated lookups within each request\. Existing access checks and history ordering remain in place\.
