| Age | Commit message (Collapse) | Author |
|
Add '0' key in ultra mode to jump to the first task.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- r: set random due date
- o: open URL from task description/annotations
- space: refresh tasks (was previously page-down; pgdn/pgdown still work)
Update ultra help screen and tests accordingly.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
- Revert whole-card yellow background for started tasks; instead render
only the ID badge (#N) with yellow bg + black text as a low-noise
"in progress" cue
- Hide the priority field from the status line when no priority is set,
removing the distracting "-" that appeared next to every unset task
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
Replace the separate header (ID/priority/status/urgency/age) and meta
(project/tags/due/recur/start) lines with a single status line:
#ID | priority | status | urgency | due: X | proj: X | tags: X
- Age, recur, and start are dropped for compactness; started tasks are
already highlighted in yellow, detail view has full field set
- ultraModeStatus and ultraStatusText replace ultraHeaderText/ultraMetaText
- renderUltraStatusWithRegex replaces renderUltraHeaderWithRegex and
renderUltraMetaWithRegex; priority badge text padded to 3 chars in the
plain line so whole-line and styled search paths produce identical text
- Update tests to reflect 2-line cards (status + description) and new
field labels (proj: instead of project:)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
Add UltraStartedBG (amber 220) to Theme and apply it as the card
background when a task has a non-empty Start field. Selection highlight
still takes priority when the cursor is on the same card.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
Use ultraJoinSections instead of ultraJoinSectionsWithBlank so no blank
separator row is inserted between card sections regardless of selection
state. The outer ultraCardStyle already paints the full card background,
so the per-section bg-coloured blank rows were redundant.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
- Status bar now shows "Task Samurai VERSION (ultra)" instead of
"ULTRA MODE" to match the normal-mode header format
- Remove the ultraStartup guard on the u key so pressing u in ultra
mode always switches to the traditional table view, even when the
app was launched with --ultra; ultraStartup is cleared on first
switch so q/esc behaves normally afterwards
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
- Remove empty lines between card sections by skipping blank separators
when no explicit blankLine is provided to ultraJoinSectionsWithBlank
- Remove 2-space leading indent from description and annotation lines
- Make ultra search case-insensitive by default (prepends (?i)); users
can override with explicit inline flags like (?-i)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
Replace strings.Fields with shlex.Split in the filter input handler so
that quoted attribute filters like description:"my task" are passed as a
single argument rather than being split on whitespace. This makes proj:xxx,
+tag, and any other valid taskwarrior filter expression work correctly when
entered via the interactive f key in both traditional and ultra mode.
Also propagate taskwarrior errors from reload() back to the user via the
status bar instead of silently discarding them, so invalid filters produce
visible feedback. On error the filter is rolled back to nil to avoid
leaving the UI in a broken empty-list state.
Extracts the filter-string parsing into a testable parseFilterInput helper
in helpers.go and adds comprehensive tests in helpers_test.go.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
Amp-Thread-ID: https://ampcode.com/threads/T-019d669c-a1a9-702a-ab0e-7ea799649e17
Co-authored-by: Amp <amp@ampcode.com>
|
|
Replace the Enter-to-apply search with live filtering: every keystroke
recompiles the regex and rebuilds ultraFiltered immediately, so results
update as the user types.
Behaviour summary:
- Typing: regex compiled and filter applied on each character.
- Invalid regex mid-type: previous filter kept unchanged (no flicker).
- Enter: confirm and close the input (empty Enter clears the filter).
- Esc: cancel, clear the filter, close the input.
- Regexes are always supported (was already the case via
compileAndCacheRegex, now usable interactively as you type).
Extracted ultraApplySearch() to centralise the compile+filter logic.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
Priority field: the no-priority dash (-) was rendered with terminal-
default (black) background because the priority badge path unconditionally
passed bg="" to suppress the badge colour. Now only H/M/L pass bg="" to
preserve their coloured pill; the dash case inherits the card bg.
q/esc with active search: first press clears the ultra search filter
(regex + filtered index + cursor reset) and stays in ultra mode, same
as esc behaves in normal table mode. A second press with no active
search exits ultra / quits the app as before. Tests updated accordingly.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
The space between "project:" and its value in ultraKeyValue was a plain
unstyled " " string. After the label span's ANSI reset the terminal
reverted to black background for that single space before the value
span's bg kicked in.
Fix: apply bg to the separator space the same way ultraFieldSep does for
the " | " between fields.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
The blank lines inserted between card sections (header/meta/desc/
annotations) by ultraJoinSections had no background style, so they
rendered in the terminal-default black even when the card was selected.
Add ultraJoinSectionsWithBlank(blankLine, sections...) that accepts an
explicit blank-line separator. renderUltraCard now passes a
Width(width)+Background(SelectedBG) styled empty string as the separator
when the card is selected, ensuring every line — including the blank
inter-section gaps — carries the grey background.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
Each lipgloss Render() call emits an ANSI reset that wipes the card's
SelectedBG colour, leaving fields, separators and spaces on black.
Fix: thread a bg string through renderUltraHeaderWithRegex,
renderUltraMetaWithRegex, renderUltraDescriptionWithRegex,
renderUltraAnnotationsWithRegex, ultraKeyValue, ultraStyledText,
renderUltraSearchLine, and the new ultraFieldSep helper. When the card
is selected, bg = theme.SelectedBG is applied to every inner style, so
no span can reset back to the terminal default. The priority badge keeps
its own background colour regardless of selection state.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
|
- Theme: SelectedBG changed from purple (57) to dark grey (238) so
selected cards are clearly distinct from the status bar; priority
badge colors switched to subtler dark variants (red/blue/green)
- Ultra header: ID bold white, urgency amber, age dim, status grey;
no background on unselected cards (pure black terminal background)
- Priority badge: 3-char wide centred pill with white text
- Annotations: italic and dimmer (244) vs description (253)
- Card separator: full-width ─── line in dim grey (237) instead of
a blank line, making task boundaries easier to scan
- u key in ultra mode toggles back to table view (syncs cursor);
from --ultra startup mode u is a no-op since there is no table to
return to
- q/esc from --ultra startup mode exits directly instead of dropping
to the table view (ultraStartup flag tracks launch origin)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Add ultraNoTasksMessage() showing centered "No tasks" when task list is
empty. Add tests for single-task cursor stability, empty-list render,
and cursor clamping after filter yields zero results.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Add --ultra boolean flag mirroring the --disco pattern. Add SetUltra()
method to Model so the flag sets showUltra=true before the TUI starts,
opening directly in ultra mode.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Add buildUltraHelpContent() with hotkey sections for ultra mode. Wire
H key in handleUltraMode() to show mode-aware help. Route help viewport
to ultra-specific content when showUltra is active.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
|
|
|
|
|
|
|
|
|