* Refactor assignment strategy handling in ChoreEdit component
* performance improvement : Refactor chore filtering logic and improve search functionality in MyChores and useChoreFilters hooks. reduce rerender etc...
* making sure the filter clear when it supposed to
* formating
Thank yWhen the backend resource endpoint reports disable_password_auth, the login
view hides the username/password form, the 'or' divider and the 'Create new
account' button, leaving only the configured SSO button — so SSO-only
instances present a clean login.
Auth options render only once the resource query has settled, so the password
form never flashes before being hidden (no FOUC) on SSO-only instances.
Also drops a dead setUserProfile(user) call in the post-auth effect (the
symbol was removed earlier, leaving a no-undef that broke lint on this file);
the profile now comes from useUserProfile().
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* Remove the gray panel in add task modal
* migration clicking label to the new advance filtered.
* Fix: Clicking x on filter chip remove the filter condition
* Initialize Onboarding Flow
* Shorten Onboarding
* Add Setup circle and what are the current way to add tasks to the onboarding.
update donetick logo
* improve wording
* Skip onboarding flow for now
* Enable onboarding flow
* enable hold to select, remove once x1 chip, unify reschedule modal
* project title still show fromwhen login from different account
it's was cache in local storage so makdikngsure we do clean up
* Fix: show the button for creating task on the modal instead of the panel
* Bulk moving project, Move the button in scanner to the modal
* - Handle bulk change for projects
- allow no assignee being selected
- choreactionmenu become modal on mobile
* Update build.yml to allow pushes to any branch
Remove branch restriction for push events, which prevents forked projects from running CI checks prior to creating a PR.
* eslint, prettier config only
The app logged itself out in the middle of the OAuth code exchange,
tearing down the page before the callback request could finish.
On resume, the deep-link handler and the sync-on-resume listener fire in
the same tick. Sync ran first, hit a 401 (no session exists yet), and
ApiClient treated that as an expired session: it cleared tokens, wiped
the offline DB, and hard-navigated to /login via window.location.href.
That reload aborted the in-flight POST /auth/oauth2/callback, surfacing
as "Authentication request failed TypeError: Failed to fetch".
Add heartbeat/timeout recovery for silently-dead Android recognizer sessions,
wait for and prefer the late-arriving final transcript over the interim
partial, and guard against duplicate commits when it lands after restart.
Bias native recognition toward circle member/label names via contextualStrings
so unfamiliar names aren't auto-corrected. Restrict spoken "label X" to
existing labels (exact or closest fuzzy match) instead of creating new ones,
removing the now-unused label-creation flow from AddTaskModal/VoicePanel/
parseVoiceTask.
Merge duplicate CFBundleURLTypes entries in Info.plist so the Google
reversed-client-ID scheme and the donetick deep-link scheme coexist.
The second entry was overriding the first, causing GIDSignIn to throw
NSInvalidArgumentException for a missing URL scheme.