aboutsummaryrefslogtreecommitdiffstats
path: root/docs/PROJECTS.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/PROJECTS.md')
-rw-r--r--docs/PROJECTS.md17
1 files changed, 13 insertions, 4 deletions
diff --git a/docs/PROJECTS.md b/docs/PROJECTS.md
index d1e2806..1f39c05 100644
--- a/docs/PROJECTS.md
+++ b/docs/PROJECTS.md
@@ -108,10 +108,19 @@ basename and must be unique (it names the staged file).
## Phases
-**Phase 1 — project model + switching.** Project file, staging dir,
-`WorkerPool` (lazy spawn, budget eviction, save-on-evict, clean shutdown),
-`BinaryState` save/restore, switcher palette, active binary in the status bar,
-`--project` CLI. One active binary; no cross-binary search yet.
+**Phase 1 — project model + switching. DONE.** Project file + staging
+(`idatui/project.py`), `WorkerPool` with budget eviction / save-on-evict /
+clean shutdown (`idatui/pool.py`), `BinaryState` snapshot+restore and the switch
+itself, the `Ctrl+O` switcher palette, the active binary in the status line, and
+`--project` (which creates the project when given binaries). One active binary;
+no cross-binary search yet.
+
+Project mode is **additive**: with no `--project` the app is byte-for-byte the
+single-binary tool it was, which is what keeps the 167-check pilot honest.
+Switching reuses the `_after_reconnect` shape — swap client+program, rebuild the
+index, reopen the entry. A binary whose worker is still resident restores
+instantly (its `Program` and index are still in memory); an evicted one comes
+back with a fresh worker but keeps its nav history, since that is just addresses.
**Phase 2 — index cache + project-wide search.** Per-binary index (functions,
strings) persisted after first open, keyed by source size+mtime. Scope toggle in