mirror of
https://github.com/aculix/negotium.git
synced 2026-09-11 07:28:17 +00:00
docs: tighten wording, drop the planning scratch files
Removes docs/superpowers, which held a design note and an implementation plan. Those were working notes rather than anything the project needs, and they don't belong in the repo. Everything else here is wording: em dashes swapped for ordinary punctuation across the README and the code comments, and a few sentences straightened out.
This commit is contained in:
+2
-2
@@ -7,7 +7,7 @@ import { toKey } from './dates.js'
|
||||
* today (oldest day first, within-day order preserved, ahead of anything
|
||||
* already in today), completed tasks are discarded, and the old key is
|
||||
* deleted. Pruning is therefore a side effect of carrying, so there is no
|
||||
* separate retention policy. Future keys — Tomorrow — are never touched.
|
||||
* separate retention policy. Future keys, meaning Tomorrow, are never touched.
|
||||
*
|
||||
* `now` is a parameter rather than a `new Date()` call so the boundary is
|
||||
* testable. This replaces `checkAndMigrateTasks`, whose guard compared a
|
||||
@@ -17,7 +17,7 @@ export function rollover(storage, now) {
|
||||
const todayKey = toKey(now)
|
||||
|
||||
// listTaskKeys yields only well-formed ISO keys, which is what makes this
|
||||
// string comparison safe — and is why the key format changed.
|
||||
// string comparison safe, and is why the key format changed.
|
||||
const pastKeys = storage
|
||||
.listTaskKeys()
|
||||
.filter((key) => key < todayKey)
|
||||
|
||||
@@ -4,10 +4,10 @@ const TEXT_FIELDS = new Set(['INPUT', 'TEXTAREA'])
|
||||
* Whether a keydown should trigger task undo.
|
||||
*
|
||||
* The subtlety is the text field. Deferring to a focused field's own undo
|
||||
* sounds right, but the add-task input is where focus normally sits — you
|
||||
* sounds right, but the add-task input is where focus normally sits. You
|
||||
* click it to add a task and focus stays there, and on macOS clicking a
|
||||
* button does not move focus. Guarding on focus alone therefore disables
|
||||
* undo in precisely the situation it is needed: right after deleting a task.
|
||||
* undo in the one situation it is needed: right after deleting a task.
|
||||
*
|
||||
* So it defers only when the field actually holds text worth undoing. An
|
||||
* empty input has nothing for the browser to restore, and task undo wins.
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
/** crypto.randomUUID requires a secure context, and Negotium over plain HTTP
|
||||
* on a LAN is a real self-hosted deployment shape — hence the fallback. */
|
||||
* on a LAN is a real deployment shape for this app, hence the fallback. */
|
||||
function newId() {
|
||||
if (typeof crypto !== 'undefined' && typeof crypto.randomUUID === 'function') {
|
||||
return crypto.randomUUID()
|
||||
|
||||
+1
-1
@@ -24,7 +24,7 @@ export function createUndoStack(limit = 10) {
|
||||
* Reverses one entry against the current task list.
|
||||
*
|
||||
* Indices are clamped because the list may have changed since the entry was
|
||||
* recorded — a task deleted from position 5 can be restored into a list that
|
||||
* recorded. A task deleted from position 5 can be restored into a list that
|
||||
* has since shrunk to two items, and landing at the end beats throwing.
|
||||
*
|
||||
* `clearCompleted` entries must record `removed` in ascending index order, so
|
||||
|
||||
Reference in New Issue
Block a user