100 Commits
Author SHA1 Message Date
abue-ammar 96454c7473 Fail a PR whose commits credit an AI tool as a co-author 2026-09-18 21:05:02 +06:00
abue-ammar e211aae8e2 Clarify navigation behavior in PaletteCoordinator and documentation 2026-09-11 02:56:22 +06:00
Abue Ammar 253a2f4c9b Update README.md with enhanced description and badge links 2026-09-07 13:37:03 +06:00
Abue Ammar fcdbe38635 Refactor code structure for improved readability and maintainability 2026-09-07 13:11:51 +06:00
abue-ammar e244325592 Refactor input handling in WindowLayoutArgumentField and WindowLayoutNumberField for live updates 2026-09-07 01:28:08 +06:00
abue-ammar b660cbafed Enhance command held logic with delay and task management in PaletteState 2026-09-07 00:50:53 +06:00
abue-ammar 5e47e5f7c1 Update key press handling in RootPaletteView and document search field behavior 2026-08-31 01:17:26 +06:00
abue-ammar 4ef292cfe3 Refactor showSettings method to handle nil tab and maintain previous pane state 2026-08-31 00:41:47 +06:00
abue-ammar f70f037a12 Merge branch 'main' of github.com:abue-ammar/tinycast 2026-08-30 20:08:27 +06:00
abue-ammar dde03d5d8c Add isEnabled flag to CustomCommand and Quicklink models; update related functionality and UI bindings 2026-08-30 20:05:46 +06:00
Abue Ammar 03a1c2520e Update README sections 2026-08-30 18:35:57 +06:00
Abue Ammar cecb9eaacc Update README sections 2026-08-30 18:33:24 +06:00
abue-ammar fcadb5f982 Let a quicklink answer to an alias
Settings ▸ Quicklinks rows now carry an AliasField, keyed by the quicklink's
entry ID, so a quicklink can be reached by a short alias like any application.
AliasField takes the preference key and name directly, with an init(entry:)
for the panes built on LauncherItemsSection.

The field dims on a quicklink hidden from root search, whose entry the ranker
never sees. Ranking, the launcher's alias chip, backup coverage and alias
cleanup on delete were already kind-agnostic and needed no change.

Closes #383
2026-08-29 20:06:10 +06:00
abue-ammar bf3be599eb Disarm hover highlight when opening menu to prevent unintended row selection 2026-08-29 05:41:26 +06:00
abue-ammar 1b64f90296 Add owner name support to search fields and app entries
- Introduced `ownerName` property in `SearchFields` and `AppEntry` to represent the extension a command originates from.
- Updated scoring logic in `SearchRelevance` to include `ownerName` in the ranking process.
- Enhanced fuzz tests to validate the new owner name functionality.
- Updated documentation to reflect changes in searchable fields and owner name usage.
2026-08-28 22:53:48 +06:00
abue-ammar 88538c7027 Read today alone when tomorrow's events are switched off
Not everyone wants tomorrow's schedule in front of them. The Calendar
pane gains an Include Tomorrow's Events switch, on by default, and
turning it off narrows the EventKit query itself rather than what any
surface shows — so the join card, the chord, the menu bar, My Schedule
and the launcher slice all follow from the one snapshot, and an 11pm
Join Next Meeting never reaches for tomorrow's stand-up.

`MeetingSpan` owns both the interval the query runs over and the wording
of the sentences that name those days, which is what stops a string
saying "today's and tomorrow's" over a fetch that covered one day. The
store re-reads when the span changes under it, but only once it has read
at all, so enabling the feature still fires a single query.

The `.schedule` placeholder no longer names days: it is a static
`PaletteMode` string that cannot read the setting, and one advertising a
span it could not honour would be wrong half the time.

Carried in a settings backup, unlike `calendarEnabled` and its
neighbours: it narrows what is read rather than widening what can be
reached.

Closes #361
2026-08-28 20:34:24 +06:00
abue-ammar cc418ad2ef Open a Google Meet link as the account whose calendar carried it
Someone signed into several Google accounts lands on the account chooser
every time. `MeetingLink` now carries the address the current user holds
in the invite — their attendee entry, or the organizer for a meeting
booked with no guests — and `webURL` appends `?authuser=` for Meet.

`url` stays the link as written, so Copy Meeting Link and the failure
report carry no address of ours, and a link that already names an
authuser is left alone.

Closes #365
2026-08-28 20:03:39 +06:00
abue-ammar 558d8ea53d Update custom funding URL in FUNDING.yml 2026-08-28 19:12:21 +06:00
abue-ammar f1b5f9b37a Enhance visibility management and hotkey functionality across the app
- Introduce allowsAction property in HotKeyManager to control action availability based on category settings.
- Update VisibilityStore to manage disabled kinds instead of hidden kinds, affecting launcher visibility and hotkey execution.
- Refactor SystemPromptEditor to handle enabled state more effectively, ensuring proper interaction based on settings.
- Adjust LauncherItemsSection to reflect changes in visibility logic and improve user feedback on enabled states.
- Update documentation to clarify the relationship between category switches and their impact on hotkeys and visibility.
2026-08-27 02:52:12 +06:00
abue-ammar a0967ccb6f Refactor BarButton to use rounded shape and update AI Chat tab hint to utilize BarButton 2026-08-27 02:13:00 +06:00
abue-ammar 327c09587e Add installation instructions for Tinycast Sequoia on macOS 15 2026-08-12 00:41:58 +06:00
abue-ammar 0eedaf157d removed unnecessary comments 2026-08-09 01:02:31 +06:00
abue-ammar 35c66c33b1 fomratter issues fixed 2026-08-09 00:38:33 +06:00
abue-ammar 43fc40fb67 keyboard nav settings 2026-08-08 04:10:15 +06:00
abue-ammar 312d7aa55a improved search revelence 2026-08-08 01:13:55 +06:00
abue-ammar fbfcc39f71 Add phase 32b — close the AppCore residue
Phase 32 left three survivors, each for a different reason and all the
same finding: AppCore still owns what comparable types own for
themselves.

QuicklinkCoordinator is the only coordinator not handed a
paletteCoordinator; its six siblings take one. That inconsistency alone
keeps the showPalette and hidePalette forwarders alive. runWindowCommand
is the only feature action still implemented on AppCore, because window
management is the only feature without a coordinator. SettingsBackup's
gather/apply carry a `= .shared` default that no caller ever supplies,
while BackupActions reaches the singleton six times outright — the same
coupling in two spellings, one of which defeats the grep that measures
it.

Nothing else in the roadmap picks these up: 33 puts gather/apply on its
own must-NOT-change list, 35 touches SettingsBackup only for a comment,
and no phase mentions window management. 32b must therefore land before
33, which freezes the two signatures.

Roadmap gains the phase row, the status row, a risk-register entry for
the window-command funnel, and M6 goes 4 phases/~14 h to 5/~17 h.
2026-08-06 04:06:38 +06:00
abue-ammar f3719d2c1e Refactor naming vocabulary in phase 30
Update the naming vocabulary to reflect two renames: `CommandRegistry` to `CommandCatalog` and `PaletteViewModel` to `PaletteState`. The ten-suffix vocabulary table is documented in `AGENTS.md`, including its membership lists and exceptions. Removed references to previously proposed renames that were cut, ensuring no persisted keys or string literals were altered. All changes verified against the codebase to maintain consistency and clarity.
2026-08-06 02:22:41 +06:00
abue-ammar 6068d6e326 update phases 2026-08-05 02:36:10 +06:00
abue-ammar dccba63e30 n/a 2026-08-05 02:15:06 +06:00
abue-ammar c118869365 roadmap update 2026-08-05 01:29:09 +06:00
abue-ammar 6558cdc229 this commit is not related to refactor plan 2026-08-05 00:56:06 +06:00
abue-ammar 86f12689be this commit is not related to refactor plan 2026-08-05 00:46:10 +06:00
abue-ammar aa630959be added reasonable size window management command 2026-08-03 22:41:59 +06:00
abue-ammar fddbed4f10 removed swiftlint for now. 2026-08-03 21:08:55 +06:00
abue-ammar 96790806c5 © 2026 Abue Ammar · Released under AGPL-3.0 2026-08-03 20:59:57 +06:00
abue-ammar eb2648f226 Enhance contribution guidelines and add pull request template 2026-07-29 18:42:00 +06:00
abue-ammar 1af08c88b2 fix links 2026-07-27 02:26:51 +06:00
abue-ammar 0619e88736 fix dev channel 2026-07-27 01:47:49 +06:00
abue-ammar 433c798e92 fix ↵ icon not centered 2026-07-27 01:18:30 +06:00
abue-ammar 57548f57e5 added paste target app in clipboard, emoji panel 2026-07-26 23:51:33 +06:00
abue-ammar b075102036 change active dot size 2026-07-24 22:52:57 +06:00
abue-ammar fef9ce6267 code review fix 2026-07-24 22:23:46 +06:00
abue-ammar bce7ce34fb fix docs 2026-07-24 21:05:21 +06:00
abue-ammar 6161616c98 fixed docs 2026-07-24 21:05:14 +06:00
abue-ammar 3c614a4fe1 Category section presentation: Results header + spacing tokens
- Launcher search results now sit under a single "Results" header
  (Raycast-style), while the empty-query per-kind sections are unchanged.
- Add two shared Theme.Spacing tokens driving every palette list's
  SectionHeader: sectionHeaderBottom (header→first row) and
  sectionSpacing (gap above every header except the list's first, which
  reads as the previous section's closing padding). SectionHeader gains
  an isFirst flag; each list passes isFirst via the first-row id.
- Document the shared SectionHeader/tokens and the menu-open input
  freeze in CLAUDE.md.
2026-07-24 19:37:07 +06:00
abue-ammar c52ffae77e fix category header bottom gap and added result category in app list 2026-07-24 19:30:04 +06:00
abue-ammar d7b5102c32 Hide footer action group on empty results; clearer launch labels
- The primary/Actions footer group is hidden whenever the current mode
  has no results (not just for an error calc card), so a query that
  matches nothing shows no "Open … / Actions ⌘K" controls.
- Launch labels: system settings now reads "Open System Setting" (was
  "Open") and commands read "Open Command" (was "Run Command"), in both
  the footer pill and the ⌘K menu's primary item.
2026-07-24 19:10:47 +06:00
abue-ammar 508ee944de Freeze search field while ⌘K menu is open; fix clipboard ⌘↵
When a footer popover menu (⌘K Actions / app menu) is open, the search
field kept accepting input and showed a blinking caret, and clearing the
query while the menu was up corrupted the compact-bar state. Now the
field reads as inert while a menu owns the keyboard — matching Raycast —
without ever resigning first responder, so its text/placeholder never
reflows:

- PalettePanel.sendEvent swallows text-editing keystrokes while
  menuOpen, letting shortcut chords (⌘K, ⌘⌫) and menu-nav keys reach
  SwiftUI's onKeyPress.
- The caret is hidden by tuning SwiftUI's own live field editor
  (insertionPointColor) via PaletteViewModel.onMenuOpenChanged — not by
  changing focus (which caused the field-editor↔cell reflow) and not by
  replacing the field editor (SwiftUI force-casts it to a private type
  and aborts).

Also fix clipboard ⌘↵ pasting instead of copying while the menu is open:
the Return handler activated the highlighted menu row for any Return,
ignoring modifiers. Now only plain ↵ activates the row; a modified ↵
always runs the mode-specific action, so ⌘↵ copies to clipboard whether
or not the menu is open.
2026-07-24 18:48:38 +06:00
abue-ammar 4064d89a09 added more calculations and fiix the badges 2026-07-24 17:41:15 +06:00
abue-ammar 47a96d73f9 fix release design 2026-07-24 16:20:20 +06:00
abue-ammar 5e9a8fb789 fixed naming 2026-07-24 15:55:47 +06:00
abue-ammar 124598e256 implemented hover effect show when mouse moves on fresh new window open not already in a hovered state 2026-07-24 15:40:05 +06:00
abue-ammar 3da40d85e6 fix calc bug 2026-07-24 02:50:49 +06:00
abue-ammar 70b2e4251b fix placeholder layout shift on launch 2026-07-24 02:36:09 +06:00
abue-ammar 4809529da4 fix calculator ui 2026-07-24 01:20:11 +06:00
abue-ammar e3c87dbe0d added more calculations 2026-07-24 01:02:49 +06:00
abue-ammar c1d9acf72e fix layout shift in search area 2026-07-23 23:58:29 +06:00
abue-ammar ad98714760 removed unnecessary comments 2026-07-23 23:34:18 +06:00
abue-ammar d4c20955ed fix emoji panel have layout shift issuw on keyboard navigation 2026-07-23 23:31:08 +06:00
abue-ammar ffad550872 fix emoji panel being pushed up when launching from compact mode 2026-07-23 23:01:40 +06:00
abue-ammar 72811ef631 app still present in the list after uninstall fix 2026-07-23 22:11:58 +06:00
abue-ammar f4bcba9fcb fixed layout shift while typing in compact mode 2026-07-23 21:45:36 +06:00
abue-ammar 1f552d2138 layout shift fix 2026-07-23 21:07:42 +06:00
abue-ammar 694e8d814e github release notify on discord 2026-07-23 04:15:46 +06:00
abue-ammar e1a263c9d3 unicode update to 17 2026-07-23 03:53:37 +06:00
abue-ammar 2816acfdba fix pressing enter opens app in compact mode 2026-07-23 03:45:08 +06:00
abue-ammar a1acdeeb46 fix icon cache 2026-07-23 03:25:47 +06:00
abue-ammar fda717aca2 changed settings window size 2026-07-23 03:13:53 +06:00
abue-ammar 96a45bac49 polished show more 2026-07-23 03:05:37 +06:00
abue-ammar 607f1699a3 fixed comact mode bug 2026-07-23 02:43:17 +06:00
abue-ammar 9a4e636afb added compact mode 2026-07-23 02:15:46 +06:00
abue-ammar c8aa25a1a3 fix popover focus and keyboard navigation 2026-07-23 00:55:23 +06:00
abue-ammar 1da47f0c92 might remove this 2026-07-22 02:12:07 +06:00
abue-ammar 3928f3c457 fix flick issue 2026-07-21 23:27:45 +06:00
abue-ammar 1db9f5dc3d fix md 2026-07-21 20:29:51 +06:00
abue-ammar b6cbfbb51c fix frost 2026-07-21 20:29:04 +06:00
abue-ammar fb0d97866a fix inconsistency 2026-07-21 03:52:45 +06:00
abue-ammar 70a1860f32 fix key capp hardcoded 2026-07-21 03:43:56 +06:00
abue-ammar b35f57b033 fix hover 2026-07-21 03:39:06 +06:00
abue-ammar b2ffb920a9 fix design 2026-07-21 03:35:07 +06:00
abue-ammar 72e441e84c fix radius 2026-07-21 03:32:22 +06:00
abue-ammar 56f9b81105 fix radius 2026-07-21 03:24:46 +06:00
abue-ammar 521cc0baa5 added about in settings 2026-07-21 03:15:27 +06:00
abue-ammar 297bc85e03 fix consistency 2026-07-21 02:55:20 +06:00
abue-ammar 347a1978b9 fix icon 2026-07-21 02:49:48 +06:00
abue-ammar 0e36f70225 fixed issue 2026-07-19 00:03:56 +06:00
abue-ammar c36a9babb0 fix warning 2026-07-18 23:16:32 +06:00
abue-ammar a4fdb6adcb fix lsp issue 2026-07-18 23:08:58 +06:00
abue-ammar 0d291b4ec8 fix emoji horizonal navigation 2026-07-18 22:41:06 +06:00
abue-ammar e32ef63890 fix light box 2026-07-18 22:21:36 +06:00
abue-ammar 81cb936906 added contents 2026-07-18 22:08:30 +06:00
abue-ammar cd3956cc54 fix website 2026-07-18 21:18:14 +06:00
abue-ammar bc1104efa9 fix web design 2026-07-18 20:54:35 +06:00
abue-ammar 9a634433af fixed tap trust 2026-07-18 04:00:02 +06:00
abue-ammar 13733cd5b6 skips password copy 2026-07-18 03:46:11 +06:00
abue-ammar 90783da68b build optimization 2026-07-18 03:14:22 +06:00
abue-ammar 0340d8fb2b new ci 2026-07-18 03:10:31 +06:00
abue-ammar 22d122005d new ci 2026-07-18 03:10:21 +06:00
abue-ammar 5c47c06f99 change icon 2026-07-18 00:17:36 +06:00
abue-ammar 9d7663ead7 fixing sign 2026-07-18 00:07:56 +06:00