clanker 73dcec9314 List UX: newest-first tables, New task expander above the queue il y a 1 mois
..
AllocationService.vala cb269d0d30 r23: sessions as truth — the saddle-row work cache dies, IDLE/BUSY derive from open sessions il y a 1 mois
CapabilityService.vala 0cc0b32eb3 integration: repo-qualified goal_branches rows, plan-12 doc rot swept il y a 1 mois
Dispatcher.vala cb269d0d30 r23: sessions as truth — the saddle-row work cache dies, IDLE/BUSY derive from open sessions il y a 1 mois
GoalService.vala 73dcec9314 List UX: newest-first tables, New task expander above the queue il y a 1 mois
LifecycleService.vala cb269d0d30 r23: sessions as truth — the saddle-row work cache dies, IDLE/BUSY derive from open sessions il y a 1 mois
ProjectService.vala f5813112c6 feat: project notes — migration, POST /api/saddle/note callback with dedicated saddle-callback token, project page curation, capped project_notes + callback in the /start payload (base URL from web-config.json saddle_callback_base_url, env fallback) il y a 1 mois
PushService.vala 375d0957f9 r1: one time-format util — src/Format.vala's format_stamp owns the '%Y-%m-%d %H:%M' display shape; the four per-entrypoint format_stamp/format_time copies and the saddles/rules/projects inline formats collapse onto it (StatePulse keeps its second-precision pulse stamp); the clock domain is uniform now_local (PushService's VAPID exp was the lone now_utc, and to_unix is timezone-independent anyway). il y a 1 mois
RuleService.vala 8d895974b4 goals: assignment context_update — the resume-time instruction delta il y a 1 mois
SaddlePollState.vala cb269d0d30 r23: sessions as truth — the saddle-row work cache dies, IDLE/BUSY derive from open sessions il y a 1 mois
SaddleService.vala cb269d0d30 r23: sessions as truth — the saddle-row work cache dies, IDLE/BUSY derive from open sessions il y a 1 mois
StatePulse.vala bd6d54da86 feat: SSE (terminal stream + pulse), task plans with stm-markdown, typed blocks (question/RFC/review), progress updates, terminal highlight-to-comment, toast notifications, auth tokens, workspace pause/resume, UI overhaul il y a 1 mois
TaskService.vala 73dcec9314 List UX: newest-first tables, New task expander above the queue il y a 1 mois
TimelineService.vala 13d283c0a6 r3: query layer (arch 14) — the work moves into the ORM with identical results. list_tasks filters (status/project) and sorts (priority, created_at — DateTime columns are unix-epoch ints, so the SQL ORDER BY equals the old .to_unix() compare) inside the query; get_ready_tasks stops loading EVERY task row for predecessor checks and queries only the queued candidates' predecessors; unreachable_task_ids batches (candidate tasks once, their sessions in one id-filtered query, the saddles in another — the newest-open-session-per-task semantics preserved by an id-ordered backward walk); display_map_for loads the wanted tasks' blocks in ONE task_id-filtered query instead of three full-table scans filtered in Vala; TasksState.build materialises the task list ONCE (the triple list_tasks died); TaskDetailState's enqueue dropdown queries exactly the standalone rows it lists (new list_standalone_tasks) instead of every task on every pulse; TimelineService.recent_window stops loading every session twice — the yeehaw session->task map builds from a batched lookup of only the WINDOW newest entries' sessions. The batched WHERE-in is an OR-chain helper (id_in/id_filter) because the expression grammar has no IN operator; id batches carry decimal strings (the Invercargill collections mishandle boxed value types — an int64 vector through to_immutable_buffer corrupts the heap, the exact trap the CreateTaskAction comment warns about). 851 checks, unchanged. il y a 1 mois