Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
6791861
stuff
MelbourneDeveloper Dec 9, 2025
cc18d50
stuff
MelbourneDeveloper Dec 9, 2025
7b42de4
stuff
MelbourneDeveloper Dec 9, 2025
358ca63
stuff
MelbourneDeveloper Dec 9, 2025
0a43744
stuff
MelbourneDeveloper Dec 9, 2025
aade46a
fix tests
MelbourneDeveloper Dec 9, 2025
19fcd77
stuff
MelbourneDeveloper Dec 9, 2025
f54baa4
stuff
MelbourneDeveloper Dec 10, 2025
7941a2c
fix
MelbourneDeveloper Dec 10, 2025
54ab3dc
fix file locks
MelbourneDeveloper Dec 10, 2025
5308fab
works good
MelbourneDeveloper Dec 10, 2025
a19cf1c
works good
MelbourneDeveloper Dec 10, 2025
b468548
fix tests and stuff
MelbourneDeveloper Dec 10, 2025
827049a
all tests pass
MelbourneDeveloper Dec 10, 2025
d3d243f
all tests pass
MelbourneDeveloper Dec 10, 2025
a8716b5
fix
MelbourneDeveloper Dec 10, 2025
906b793
add pomodoro
MelbourneDeveloper Dec 10, 2025
e343f21
more pomodoro
MelbourneDeveloper Dec 10, 2025
d4df51b
Merge branch 'main' into pomodoro
MelbourneDeveloper Dec 11, 2025
77b3970
Add links to pub dev and github
MelbourneDeveloper Jan 20, 2026
11ca3a0
all tests pass
MelbourneDeveloper Feb 3, 2026
f5e7e6d
Stuff
MelbourneDeveloper Mar 6, 2026
c3cd2f4
Working?
MelbourneDeveloper Mar 6, 2026
82a19cb
Fix
MelbourneDeveloper Mar 6, 2026
c4d87bb
Fixes
MelbourneDeveloper Mar 6, 2026
27f0317
Fixes
MelbourneDeveloper Mar 6, 2026
28730b9
Fix spec
MelbourneDeveloper Mar 6, 2026
5e273a7
Fix spec
MelbourneDeveloper Mar 6, 2026
61bddec
start refactor
MelbourneDeveloper Mar 6, 2026
9393f2f
Switch to HTTP SSE
MelbourneDeveloper Mar 7, 2026
9ed602b
Literals to constants
MelbourneDeveloper Mar 7, 2026
8411279
fixes
MelbourneDeveloper Mar 7, 2026
f15079f
Last dart vsix version
MelbourneDeveloper Mar 7, 2026
082d584
docs
MelbourneDeveloper Mar 7, 2026
3348ad8
PORT vsix back to typescript
MelbourneDeveloper Mar 7, 2026
6c4e1e4
fixes
MelbourneDeveloper Mar 7, 2026
b9d3e16
fix scripts
MelbourneDeveloper Mar 7, 2026
fb54272
clean db between tests
MelbourneDeveloper Mar 7, 2026
ee9c826
Add lints
MelbourneDeveloper Mar 7, 2026
d3d3fb9
lintz
MelbourneDeveloper Mar 7, 2026
54f23b1
fixes
MelbourneDeveloper Mar 7, 2026
02f3a3e
fix lints
MelbourneDeveloper Mar 7, 2026
d6ab639
stuff
MelbourneDeveloper Mar 7, 2026
0337d4f
Add tree
MelbourneDeveloper Mar 7, 2026
716d8d9
fixes
MelbourneDeveloper Mar 7, 2026
b18479d
stuff
MelbourneDeveloper Mar 7, 2026
d2fd57b
logs
MelbourneDeveloper Mar 7, 2026
c5b7807
fixes
MelbourneDeveloper Mar 7, 2026
f378df4
fix
MelbourneDeveloper Mar 7, 2026
a69e556
Fixes
MelbourneDeveloper Mar 8, 2026
4edc587
Stuff
MelbourneDeveloper Mar 8, 2026
4e03262
Improve tests
MelbourneDeveloper Mar 8, 2026
3047145
Stuff
MelbourneDeveloper Mar 8, 2026
6b28bef
Fixes
MelbourneDeveloper Mar 8, 2026
47cbaef
add tests
MelbourneDeveloper Mar 8, 2026
70b5936
Fixes
MelbourneDeveloper Mar 8, 2026
5846101
Remove tmc
MelbourneDeveloper Mar 8, 2026
5a7a321
Add Makefile wrapping tools/ scripts
MelbourneDeveloper Mar 26, 2026
901a010
Update changes
MelbourneDeveloper Mar 26, 2026
2a4ceca
Add missing words to cspell dictionary and ignore translated API docs
MelbourneDeveloper Mar 27, 2026
00d1d66
format
MelbourneDeveloper Mar 27, 2026
e8bfb41
Fix line length lint error in extensions.dart
MelbourneDeveloper Mar 27, 2026
81ba855
Update CI, tooling configs, and add Claude Code skills
MelbourneDeveloper Mar 27, 2026
26b99bd
Cleanup
MelbourneDeveloper Jun 6, 2026
8828e00
Agent PMO
MelbourneDeveloper Jun 7, 2026
7baf1b4
Merge branch 'main' into tmcrefactor
MelbourneDeveloper Jun 7, 2026
d44dd74
Salvage signal_mesh P2P encrypted mesh package from claude/signal-p2p…
MelbourneDeveloper Jun 7, 2026
3430954
Salvage mcp-websocket-bridge package from claude/build-mcp-websocket-…
MelbourneDeveloper Jun 7, 2026
f8c486a
Merge pomodoro feature from pomodoro branch (junk stripped)
MelbourneDeveloper Jun 7, 2026
1c12121
Salvage window.dart overload fix + test improvement from tmc_fixes/da…
MelbourneDeveloper Jun 7, 2026
557e0c7
Merge pubdevlinks: add pub.dev + GitHub links to website
MelbourneDeveloper Jun 7, 2026
3497f29
Salvage paper_demo_screen react-native-paper example from stuff
MelbourneDeveloper Jun 7, 2026
5a04916
Fix signal_mesh compilation (nadz inference + warnings)
MelbourneDeveloper Jun 7, 2026
d6afa46
Make CI green: analyzer/cspell fixes + per-package coverage ratchet
MelbourneDeveloper Jun 7, 2026
0c1a417
formatting
MelbourneDeveloper Jun 7, 2026
6be8405
Enforce lint + coverage on every package; fix CI gates for release
MelbourneDeveloper Jun 7, 2026
7c4e364
ci: run deslop binary by path (fix exit 127)
MelbourneDeveloper Jun 7, 2026
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
4 changes: 4 additions & 0 deletions .claude/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"_agent_pmo": "76596cb",
"autoMemoryEnabled": false
}
27 changes: 27 additions & 0 deletions .claude/skills/build/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
name: build
description: Builds all artifacts for this repo. Use when the user asks to build, compile, or produce artifacts, or when verifying that the project compiles cleanly.
---

# Build

Build all artifacts for this repo.

## Steps

1. Run `make clean` to remove stale artifacts
2. Run `make build`
3. Report what was built and where the artifacts are

## Notes

This is a Dart library monorepo — `make build` verifies that all packages compile cleanly. There are no standalone build artifacts (libraries are consumed via pub.dev).

To build specific components:
- Backend example: `dart run tools/build/build.dart backend`
- VS Code extension: see `/build-extension` skill

## Success criteria

- Exit code 0 from `make build`
- No warnings printed to stderr
44 changes: 44 additions & 0 deletions .claude/skills/ci-prep/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
---
name: ci-prep
description: Prepares the current branch for CI by running the exact same checks locally, fixing issues at each step. Use before pushing a branch or when the user wants to verify the branch will pass CI.
---

# CI Prep

Prepare the current state for CI. Ensures the branch will pass CI before pushing.

## Steps

### Step 1 — Analyze the CI workflow

1. Read `.github/workflows/ci.yml`
2. The CI runs these jobs in order:
- **lint**: format check, spell check, dart analyze
- **test**: tier 1, tier 2, tier 3 tests with coverage
- **build**: `make build`
- **website**: website build + Playwright tests (independent)

### Step 2 — Run each CI step locally, in order

1. **Format check**: `make fmt CHECK=1`
- If fails: run `make fmt` to fix, then re-check
2. **Spell check**: `cspell "**/*.md" "**/*.dart" "**/*.ts" --no-progress`
- If fails: add words to cspell dictionary or fix typos
3. **Analyze**: `dart analyze --no-fatal-warnings` on all packages
- If fails: fix lint errors in the reported files
4. **Test Tier 1**: `./tools/test.sh --tier 1`
5. **Test Tier 2**: `./tools/test.sh --tier 2`
6. **Test Tier 3**: `./tools/test.sh --tier 3`
7. **Build**: `make build`

### Step 3 — Report

- List every step that was run and its result (pass/fail/fixed)
- If any step could not be fixed, report what failed and why
- Confirm whether the branch is ready to push

## Rules

- Do not push if any step fails
- Fix issues found in each step before moving to the next
- Never skip steps or suppress errors
63 changes: 63 additions & 0 deletions .claude/skills/code-dedup/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
---
name: code-dedup
description: Searches for duplicate code, duplicate tests, and dead code, then safely merges or removes them. Use when the user says "deduplicate", "find duplicates", "remove dead code", "DRY up", or "code dedup". Requires test coverage — refuses to touch untested code.
---

# Code Dedup

Carefully search for duplicate code, duplicate tests, and dead code across the repo. Merge duplicates and delete dead code — but only when test coverage proves the change is safe.

## Prerequisites — hard gate

Before touching ANY code, verify these conditions. If any fail, stop and report why.

1. Run `make test` — all tests must pass. If tests fail, stop.
2. `make test` already enforces the coverage threshold from `coverage-thresholds.json`. If it failed on coverage, stop.
3. This is a Dart repo with static typing via `austerity` — proceed.

## Steps

### Step 1 — Inventory test coverage

1. Run `make test` and note coverage per package from the output
2. Only packages WITH coverage are candidates for dedup

### Step 2 — Scan for dead code

1. Look for unused exports, functions, classes, variables across all packages
2. Use `dart analyze` output for unused element warnings
3. Grep the entire codebase for references before marking as dead
4. List all dead code found. Do NOT delete yet.

### Step 3 — Scan for duplicate code

1. Look for functions with identical or near-identical logic across packages
2. Check across package boundaries
3. List all duplicates found. Do NOT merge yet.

### Step 4 — Scan for duplicate tests

1. Look for tests that verify the same behavior
2. Look for test helpers duplicated across test files
3. List all duplicate tests found. Do NOT delete yet.

### Step 5 — Apply changes (one at a time)

For each change: **change -> test -> verify coverage -> continue or revert**.

- After each change: run `./tools/test.sh`
- If tests fail or coverage drops: **revert immediately**

### Step 6 — Final verification

1. Run `make test` — all tests must still pass
2. Run `make lint` and `make fmt CHECK=1` — code must be clean
3. Report: what was removed, what was merged, final coverage vs baseline

## Rules

- **No test coverage = do not touch.**
- **Coverage must not drop.**
- **One change at a time.**
- **When in doubt, leave it.** False dedup is worse than duplication.
- **Three similar lines is fine.** Only dedup substantial (>10 lines) or 3+ copies.
67 changes: 67 additions & 0 deletions .claude/skills/fix-bug/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
---
name: fix-bug
description: Fix a bug using test-driven development. Use when the user reports a bug, describes unexpected behavior, wants to fix a defect, or says something is broken. Enforces a strict test-first workflow where a failing test must be written and verified before any fix is attempted.
argument-hint: "[bug description]"
allowed-tools: Read, Grep, Glob, Edit, Write, Bash
---
<!-- agent-pmo:76596cb -->

# Bug Fix Skill — Test-First Workflow

You MUST follow this exact workflow. Do NOT skip steps. Do NOT fix the bug before writing a failing test.

## Step 1: Understand the Bug

- Read the bug description: $ARGUMENTS
- Investigate the codebase to understand the relevant code
- Identify the root cause (or narrow down candidates)
- Summarize your understanding of the bug to the user before proceeding

## Step 2: Write a Failing Test

- Write a test that **directly exercises the buggy behavior**
- The test must assert the **correct/expected** behavior — so it FAILS against the current broken code
- The test name should clearly describe the bug (e.g., `test_orange_color_not_applied_to_head`)
- Use the project's existing test framework and conventions

## Step 3: Run the Test — Confirm It FAILS

- Run ONLY the new test (not the full suite)
- **Verify the test FAILS** and that it fails **because of the bug**, not for some other reason (typo, import error, wrong selector, etc.)
- If the test passes: your test does not capture the bug. Go back to Step 2
- If the test fails for the wrong reason: fix the test, not the code. Go back to Step 2
- **Repeat until the test fails specifically because of the bug**

## Step 4: Show Failure to User

- Show the user the test code and the failure output
- Explicitly ask: "This test fails because of the bug. Can you confirm this captures the issue before I fix it?"
- **STOP and WAIT for user acknowledgment before proceeding**
- Do NOT continue to Step 5 until the user confirms

## Step 5: Fix the Bug

- Make the **minimum change** needed to fix the bug
- Do not refactor, clean up, or "improve" surrounding code
- Do not change the test

## Step 6: Run the Test — Confirm It PASSES

- Run the new test again
- **Verify it PASSES**
- If it fails: go back to Step 5 and adjust the fix
- **Repeat until the test passes**

## Step 7: Run the Full Test Suite

- Run ALL tests to make sure nothing else broke
- If other tests fail: fix the regression without breaking the new test
- Report the final result to the user

## Rules

- NEVER fix the bug before the failing test is written and confirmed
- NEVER skip asking the user to acknowledge the test failure
- NEVER modify the test to make it pass — modify the source code
- If you cannot write a test for the bug, explain why and ask the user how to proceed
- Keep the fix minimal — one bug, one fix, one test
22 changes: 22 additions & 0 deletions .claude/skills/fmt/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
name: fmt
description: Formats all code in this repo using dart format. Use when the user asks to format code, fix formatting, or before committing changes.
---

# Format

Format all code in this repo.

## Steps

1. Run `make fmt`
2. Run `make fmt CHECK=1` to confirm clean
3. Report which files were modified

## What it does

- `dart format packages/ examples/`

## Success criteria

- `make fmt CHECK=1` exits with code 0 after formatting
32 changes: 32 additions & 0 deletions .claude/skills/lint/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
name: lint
description: Runs all linters and format checks, then fixes any issues found. Use when the user asks to lint, check code quality, or fix linting errors.
---

# Lint

Run all linters and report issues.

## Steps

1. Run `make lint` (runs format check + cspell + dart analyze on all packages)
2. Report all issues found (file, line, rule, message)
3. If issues found, fix them and re-run to confirm clean

## What `make lint` does

1. `dart format --set-exit-if-changed` on packages/, examples/, tools/build
2. `cspell` spell check on all .md, .dart, .ts files
3. `dart analyze --no-fatal-warnings` on every package and example

## Rules

- Never suppress a lint warning with an ignore comment
- Fix the code to satisfy the linter
- Each package uses the `austerity` lint package — do not bypass its rules
- If a rule seems wrong for a specific case, document why in code comments

## Success criteria

- `make lint` exits with code 0
- Zero warnings or errors output
Loading
Loading