Commit Graph
7 Commits
Author SHA1 Message Date
skkeyeandClaude Opus 5.5 cc8e6abc4f Add the settings catalog
Every setting is described once in FIELDS: its config.toml section and
key, label, help text, whether it's an expert setting, and how to read
and write it as text. The config file and the Settings screen are both
generated from this table, so adding a setting is one field, one
default and one table entry.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-24 02:59:22 -04:00
skkeyeandClaude Opus 5.5 35d55c5122 Add pomodoro-style reminders
Advice only: it reads your real Start/Pause presses and says when a
break (or getting back) fits the rhythm. Interruptions shorter than a
short break don't reset a focus stretch; every Nth completed stretch
earns a long break.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-24 02:59:22 -04:00
skkeyeandClaude Opus 5.5 97f834a299 Add exports: timesheet copy presets, clipboard and report files
- timesheet: copy presets (total H:MM, decimal hours, segments,
  in/out/break as tab-separated cells, custom template) with optional
  rounding to a step.
- clipboard: system clipboard (Windows, X11, Wayland), falling back to
  the terminal's OSC 52, or a custom command like wl-copy.
- csv, json, markdown: report files for a range of dates. CSV uses ';'
  when the decimal separator is ','; the Markdown report has a summary
  and one padded table per week.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-24 02:59:21 -04:00
skkeyeandClaude Opus 5.5 a646337339 Add analysis for the Insights views
Plain data computed from the work days, nothing about drawing:

- overview: week/month totals, balance against the daily target, weekly
  totals, and when days start and end (past 24h for night shifts).
- calendar: time worked per date, as weeks x weekdays.
- rhythm: time worked per weekday and hour, split at hour boundaries.
- focus: session lengths, long sessions (hyperfocus), breaks, days that
  went past midnight.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-24 02:59:21 -04:00
skkeyeandClaude Opus 5.5 3fdd635af0 Add the domain: segments, work days and the journal
The rules, with no files and no UI:

- Segment: one stretch of work; it can only be built with end > start.
- WorkDay: segments filed under one date, even past midnight.
- Journal: every work day plus what's happening now (Idle, OnBreak,
  Working). Start opens a work day that stays open until End day; a
  break longer than a setting opens a new day (the safety net for a
  forgotten End day). Segments never overlap, even across days.
- snapshot(): the days with the running session included, so analysis
  and export never special-case it.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-24 02:59:21 -04:00
skkeyeandClaude Opus 5.5 7bbc1ee0fa Add the time module: clock, 12h/24h text and typed times
- clock: the system clock, with a time zone override (name or fixed
  offset) and a manual adjustment; Start/Pause record whole minutes so
  displayed times and totals always add up.
- format: every time, date and duration shown in the app goes through
  Formatter (12h/24h, 7h 45m / 7:45 / 7.75); parse_time reads both 12h
  and 24h input (22:30, 2230, 22h30, 10:30pm, 10p).
- resolve: turns a typed "01:30" into the moment meant, so an end time
  before the start is the next day (night shifts).
- range: date ranges (week, month, last N days).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-24 02:59:21 -04:00
skkeyeandClaude Opus 5.5 f646da0a8e Set up the skyshift Cargo project
A terminal app (ratatui) to track work shifts, built on stable Rust,
edition 2024.

- Cargo.toml: eight well-known crates, each with a comment saying why:
  ratatui (UI), jiff (dates and time zones), serde + toml + serde_json
  (files), directories (per-OS folders), arboard (clipboard), anyhow.
- .cargo/config.toml: static C runtime on Windows, so the .exe runs
  without the Visual C++ Redistributable; `cargo lint` alias.
- rustfmt.toml: one formatting style for `cargo fmt`.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-09-24 02:59:21 -04:00