First-party extensions
The extensions architect ships (#368), each a model of how one is built: a linked extension that also runs as a process, its data as vault notes, its API as a service.
Architect’s own extensions live in this repo under extensions/, one
crate each, so they can be moved to a repo of their own later. They are
the app’s features and the showcase of how an extension is built
(Extensions, “The rule”). Each one:
- is one
linked::Extensionvalue: the app links it in (Extensions::with_linked), and its crate’s program serves the same value as a process (Guest::extension), soEXT_CLONE {"id": …}gives a development copy that overrides the built-in; - keeps its data as plain markdown in the vault, reached only through the
host service (
VAULT_*,BASES_*), so the process copy works as the linked one does; - offers its API as a service (
[provides]), and lights up with the others it[uses]when they are installed, running alone when they are not; - is tested both ways against a real vault.
| extension | what it is | page |
|---|---|---|
Projects (extensions/projects) | a page on architect’s built-in project kind, project types, goals and milestones | Projects |
Tasks (extensions/tasks) | tasks as vault notes in TaskNotes’ shape: list, Today, My tasks, a kanban base view | Tasks |
Time Tracker (extensions/time-tracker) | timers and time entries in a note’s timeEntries, totals per task, project, day and week, a timesheet base view, a report | Time Tracker |
Calendar (extensions/calendar) | events as notes (Task’s shape) with repeats and exceptions, day, week, month and agenda views with drag, tasks and tracked time on it, calendar and timeline base views | Calendar |
Day Plans (extensions/dayplan) | day templates (allocatable blocks, meal prep, resets, sleep), rules that pick each day’s template with overrides, each day’s plan with blocks given to tasks, projects and recipes, drawn under the Calendar’s events | Day Plans |
Projects, Tasks and the Time Tracker are the Project Management bundle (#375): each runs alone, and together a project’s page shows its tasks and their time, and a task its timer.
In this section
- ProjectsHow the Projects extension is built: a page on architect's built-in project kind, project types through [[project_types]], goals and milestones as notes, and the architect.projects service.
- TasksHow the Tasks extension is built: tasks as vault notes in TaskNotes' shape, reached through the host service; its list, Today, My tasks and a kanban view type for Bases; the architect.tasks service.
- Time TrackerHow the Time Tracker extension is built: timers and time entries as rows of a note's timeEntries (TaskNotes' shape), totals per task, project, day and week, a timesheet view type for Bases, a report, a status item, a capture target, and the architect.time service Projects and Tasks use.
- CalendarHow the Calendar extension is built: events as vault notes in Task's shape, repeats with exceptions, day, week, month and agenda views with drag to move and resize, tasks and tracked time on it, calendar and timeline view types for Bases, a capture target, a navigator provider, and the architect.calendar service.
- Day PlansHow the Day Plans extension is built: Task's day templates as vault notes, rules and overrides that pick each day's template, a past that never moves, each day's own plan, Task's resolver, and the architect.dayplan service the Calendar draws plans with.