Skip to main content

tom_worktracker_core 1.1.0 copy "tom_worktracker_core: ^1.1.0" to clipboard
tom_worktracker_core: ^1.1.0 copied to clipboard

Worktracker core: the workspace discovery, graph, projections and mutation API over the *.todo.yaml files (the todo model itself is tom_todo_model).

tom_worktracker_core #

Published on pub.dev as tom_worktracker_core 1.1.0.

Attribution. The Tom Framework is developed by Peter Nicolai Alexis Kyaw. This package is BSD-3-Clause licensed and published on pub.dev.

Worktracker's core: workspace and todo-world discovery, the read pipeline (snapshot → graph → projections), the mutation API, bundles and execution tracking over a workspace's *.todo.yaml files.

The todo model and the file codec it works with are not here: they are the published package tom_todo_model (repository tom_modules), which Worktracker, Webwork and the VS Code scripting API all share. Its README describes TomTodo, the statuses and priorities, the splice codec (TomTodoFile), the date-code ids, the decisions journal and archive / delete as relocation.

Entry point #

Import Holds Platforms
package:tom_worktracker_core/tom_worktracker_core.dart Worktracker: settings, world and workspace discovery, the document reader and store, the read pipeline, the mutation API, bundles and execution tracking Dart VM (reads the file system)

An application that only needs todos depends on tom_todo_model alone, which touches no file system, so a browser build can link it.

Worktracker #

TodoDocumentReader and TodoDocumentStore read a workspace's todo files through tom_todo_model's codec and write an edit back in the file's own encoding; WorktrackerMutationApi creates, edits, moves through the status transitions (WorktrackerStatusTransitions), deletes and links todos, stamping updated on every change. The read pipeline builds the graph, the execution and Gantt projections, and the bundle plan from the snapshot.

Example #

The shared model in use, as Worktracker reads and edits a file through it:

import 'package:tom_todo_model/tom_todo_model.dart';

const source = '''# Garden todos
quest: garden
todos:
  - id: gx1_ajka-plant
    title: Plant the beds
    # Started on Monday.
    description: Plant the spring beds.
    status: in-progress
''';

void main() {
  var file = TomTodoFile.parse(source);
  final todo = file.todos.single;
  print('${todo.id}: ${todo.status.wire}');

  final done = todo.copy()
    ..changeStatus(
      TomTodoStatus.completed,
      on: DateTime.utc(2026, 10, 21),
      by: 'ada',
    );
  var text = file.withTodo(0, done);
  print(
    text.contains('# Started on Monday.') ? 'comment kept' : 'comment lost',
  );

  file = TomTodoFile.parse(text);
  final next = tomMintTodoId('gx2', DateTime(2026, 10, 21, 9), slug: 'Water');
  text = file.withInserted(TomTodo(id: next, title: 'Water the beds'));
  print(next);

  final plan = tomPlanTodoRelocation(
    source: TomTodoFile.parse(text),
    fileName: 'todos.garden.todo.yaml',
    index: 0,
    kind: TomTodoRelocationKind.archive,
    now: DateTime.utc(2026, 10, 21),
  );
  print(
    tomTodoSiblingName('todos.garden.todo.yaml', TomTodoRelocationKind.archive),
  );
  print(TomTodoFile.parse(plan.sourceText).todos.map((t) => t.id).join(', '));
}

The compiled form of this section is example/todo_file_example.dart, and test/readme_example_test.dart asserts what it prints.

Dependencies #

Dependency Kind For
tom_todo_model runtime the todo model and the *.todo.yaml codec
tom_basics runtime text decoding that keeps a file's encoding, used by the document reader and store
yaml runtime reading settings and todo worlds
meta, path runtime annotations; Worktracker's paths
test, lints dev the suite

Status #

Version 1.1.0. dart test runs the suite: Worktracker's discovery, graph, projections, mutation API, bundles and execution tracking, and the example. The model's and the codec's own tests are in tom_todo_model.

0
likes
160
points
46
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Worktracker core: the workspace discovery, graph, projections and mutation API over the *.todo.yaml files (the todo model itself is tom_todo_model).

Repository (GitHub)

License

BSD-3-Clause (license)

Dependencies

meta, path, tom_basics, tom_todo_model, yaml

More

Packages that depend on tom_worktracker_core