Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
151 changes: 87 additions & 64 deletions README.md

Large diffs are not rendered by default.

10 changes: 6 additions & 4 deletions builtin-extensions/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,14 @@

Extensions that ship inside the Devlog app, one folder each (with a
`devlog-extension.json`). A devlog enables one with `"<name>": "builtin"` in
its `devlog.json`; it still runs sandboxed and still asks before it starts.
its `devlog.json`; it still asks before it starts, and runs sandboxed unless
it says it needs more (Window tracking does, and asks you to trust it).
Once allowed, a built-in keeps its grant when the app updates it.
Packaged into the app's resources as `extensions/`.

An extension written in TypeScript keeps its sources in `src/`: `src/main.ts`
is bundled to `dist/main.js` (its manifest's `main`), and each
`src/views/<view>.tsx` to `dist/views/<view>.html` with its script and
styles (React and `@devlog/ui` included), by `scripts/build-builtins.mjs`,
which `npm run build` runs first. `dist/` is not committed; `src/` is not
packaged.
styles (React and `@devlog/ui` included), by `scripts/build-builtins.mjs`.
`npm run build` runs it first (and so do `dev`, `package`, `smoke` and
`screens`). `dist/` is not committed; `src/` is not packaged.
2 changes: 1 addition & 1 deletion builtin-extensions/devlog-focus/devlog-extension.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "devlog-focus",
"displayName": "Window tracking",
"version": "1.1.0",
"description": "Records which window is in front (app and title) while this computer is unlocked, for screen time in the timeline, review and summary. Kept per machine in the devlog. Runs unrestricted: it starts a small helper (PowerShell, osascript or xdotool) to read the window in front.",
"description": "Records which window is in front (app and title) while this computer is unlocked, for screen time in the timeline and review. Kept per machine in the devlog. Runs unrestricted: it starts a small helper (PowerShell, osascript or xdotool) to read the window in front.",
"api": "^1.2.0",
"main": "main.js",
"permissions": { "unrestricted": true },
Expand Down
30 changes: 16 additions & 14 deletions docs/BLOCK-PAGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,14 @@ apart; the breadcrumb runs Client / Project / Standup / Sep 28 / …, and you
can go up a level.

In a stream, a block with blocks inside it no longer shows them inline as a
thread. It shows a chip ("3 notes") that opens its page.
thread. It shows a chip ("▸ 3 blocks inside") that opens its page.

Todos become ordinary blocks that can sit anywhere in that tree (phase 2), and
the todo panel is a view over them.

The standup, for example: in the Standup task, type "Sep 28" and post it with
Alt+Enter. That starts the task (posting on a task canvas does) and opens the
new block's page. Notes and action items go inside it. Anything worth keeping
Alt+Enter. That starts the task (posting on a task canvas does, with the
time tracking extension, devlog-time) and opens the new block's page. Notes and action items go inside it. Anything worth keeping
at the top is an edit of the block, the page's surface. The Standup task then
reads as a list of dated blocks, each one openable.

Expand Down Expand Up @@ -48,18 +48,20 @@ reads as a list of dated blocks, each one openable.
3. **Ticking a todo off no longer writes a "✓" block;** the todo shows as
done where it is, and the timeline shows when it was ticked. Existing
"✓" blocks stay as history.
4. **Todo panel order:** grouped by canvas (collapsible sections; a chain
of canvases with a single path collapses into one heading), then in the
order the todos appear in their streams. Drag to reorder within a group.
There is no ranking across groups.
4. **Todo panel order:** grouped under the canvases and blocks the todos
sit in (collapsible sections; a chain with a single path collapses into
one heading), then in the order the todos appear in their streams. Drag
to reorder among the todos beside it (the same day file, inside the same
block). There is no ranking across groups. Ticked todos stay in a Done
section for 14 days.
5. **Opening a page:** double-click a block, click its chip, or its Open
action. On a page, double-clicking the surface edits it.
6. **Making a block with blocks inside it a task** moves those blocks into
the new task canvas; the block stays where it was as the link to it
(phase 3).
7. **A task is a canvas you can record time against.** Block pages do not
track time on their own; a page inside a task canvas belongs to that
task, so posting anywhere in it makes the task active.
6. **Making a block with blocks inside it a task** (**Make task**, from the
time extension, through `devlog.promote`) moves those blocks into the new
task canvas; the block stays where it was as the link to it (phase 3).
7. **A task is a canvas you can record time against** (with devlog-time).
Block pages do not track time on their own; a page inside a task canvas
belongs to that task, so posting anywhere in it makes the task active.

## Phases

Expand All @@ -72,7 +74,7 @@ reads as a list of dated blocks, each one openable.
2. **Todos as blocks.** The conversion (format 4), `[ ]` and pasted
checklists posting one todo per line, a checkbox in the stream, the todo
page (checkbox in the header), the panel built from the index (grouped
by canvas; Here is the page on screen and everything beneath it),
by canvas and block; Here is everything inside the page on screen),
extension API 1.4 (`parentId` when adding, todo state, a todo query).
3. **Polish.** Move under another block, making a block with children a
task (decision 6), recent pages in the quick switcher.
Loading
Loading