Skip to content
Draft
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
6 changes: 3 additions & 3 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@
},
"metadata": {
"description": "Claude Code plugins for Minimap Android navigation memory.",
"version": "0.1.3"
"version": "0.2.0"
},
"plugins": [
{
"name": "minimap",
"source": "./plugins/minimap-claude-code",
"description": "Minimap route reuse and first-run mapping skills for Android codebases.",
"version": "0.1.3",
"description": "Minimap lean Android navigation-memory skill for agents.",
"version": "0.2.0",
"author": {
"name": "Matt McKenna"
}
Expand Down
48 changes: 29 additions & 19 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,10 @@ All notable changes to Minimap are documented here.

## 0.2.0 - unreleased

Breaking redesign: capture is now incremental and progressive. Every selector- or label-grounded `tap` grows the graph automatically; there is no separate `learn` or `accept` ritual for the common case.
Breaking redesign: Minimap is now a lean Android navigation-memory tool. The
repo graph stores only semantic places, verified transitions, and compact
fingerprints. Agents use `whereami`, `go`, `tap`, `scroll`, `back`, and `layout`;
git diff/PR review is the review surface.

This is a clean break — existing `.minimap/` trees from 0.1.x must be re-initialized (`minimap init --force`).

Expand All @@ -14,30 +17,37 @@ This is a clean break — existing `.minimap/` trees from 0.1.x must be re-initi
- `learn`
- `map --discover` / `map --finish`
- `repair`
- `check` (use `validate --screen current` instead)

### Renamed

- `minimap route <name>` → `minimap route resolve <name>` (`route` is now a subcommand group)
- `check`
- `validate`
- `accept`
- `undo`
- `route`
- `screen`
- `.minimap/proposals`
- `.minimap/journal.jsonl`

### Added

- `route define <name> --to <screen> [--from <screen>] [--triggers ...]` (pass `--triggers` multiple times for multiple globs; embedded commas like `{login,signup}/**` are preserved)
- `screen rename <id> <new-name>`
- `undo` — sugar for `git checkout -- .minimap/graph .minimap/routes`
- `validate --screen current` replaces the old `check`
- `accept <id> --as-new` materializes a new screen from a drift proposal instead of merging with the candidate
- `.minimap/journal.jsonl` — append-only event log with documented outcomes (`matched | new_screen | drift_staged | coord_journal_only | tap_failed | from_screen_unknown`)
- `navigation.post_tap_settle_ms` config key controls the post-tap settle window (default 500 ms)
- Tap actions and journal entries now carry an optional viewport (`{width, height}`) captured from `adb shell wm size`, enabling cross-device reusability checks
- `whereami` — orient from one Android layout observation; `--label` attaches or updates semantic identity.
- `go <target>` — navigate to a known global label through verified graph edges.
- `scroll` — execute scrolls and retain them as pending recipe steps for the next transition.
- `back` — press Android Back and record a verified known transition when one occurs.
- Destination labels on `tap` via `--label`; `--reason` records action intent only.
- Screenshot-label taps via `--screenshot-label <n> --screenshot <path>`.
- `.minimap/graph/places` and `.minimap/graph/edges` as the committed graph.

### Changed

- `tap` is atomic: it captures the pre-tap layout, executes the tap, waits for settle, captures the post-tap layout, and either commits an edge or stages a drift proposal — all in one call
- `.minimap/runs/` is gone; replaced by `journal.jsonl`
- `Route` schema slimmed to `{name, target, from?, triggers, aliases}`
- Screen IDs are now stable `screen_<hash8>` handles; edges reference IDs, so `screen rename` does not break edges
- Drift proposals now round-trip through `accept`: the default resolution writes the staged edge from the source to the candidate, and `accept --as-new` materializes a fresh screen plus edge from the observed layout instead
- `.minimap/` now contains only `config.json`, `graph/places`, and `graph/edges`.
- `init --force` replaces the whole `.minimap/` directory with the lean layout.
- Labels are global, unique, normalized slugs; no aliases in v1.
- Place IDs are readable and label-derived, for example `place_settings`.
- Edge IDs are deterministic and agent-readable where practical.
- Edge recipes are ordered action steps, not tap-only actions.
- Coordinate and screenshot-label edges require exact viewport guards.
- Unknown destinations without `--label` do not enter the committed graph.
- `layout` returns redacted Android layout plus read-only Minimap orientation metadata.
- Agent skills installed by `init` now teach the lean command surface.

## 0.1.3 - 2026-05-08

Expand Down
23 changes: 16 additions & 7 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ members = [
]

[workspace.package]
version = "0.1.3"
version = "0.2.0"
edition = "2021"
license = "Apache-2.0"
repository = "https://github.com/himattm/minimap"
Expand All @@ -24,6 +24,7 @@ categories = ["command-line-utilities", "development-tools::testing"]
anyhow = "1.0"
assert_cmd = "2.0"
clap = { version = "4.5", features = ["derive"] }
deunicode = "1"
predicates = "3.1"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
Expand Down
Loading
Loading