@evref-bl/pharo-mcp 3.3.1 → 3.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@evref-bl/pharo-mcp",
3
- "version": "3.3.1",
3
+ "version": "3.4.1",
4
4
  "description": "Pharo MCP agent-host templates",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: pharo-image-sync
3
- description: Move code between a live Pharo image and its Tonel files, and tell the two apart. Use before exporting image changes, after a checkout moves under the image, and whenever Iceberg, the image and the files disagree.
3
+ description: Move code between a live Pharo image and its Tonel files, and tell the two apart. Use before exporting image changes, after a checkout moves under the image, before saying what is or is not committed, and whenever Iceberg, the image and the files disagree.
4
4
  ---
5
5
 
6
6
  # Pharo Image Sync
@@ -12,6 +12,27 @@ Iceberg diff does not mean anything was written to disk.
12
12
  Git itself is ordinary shell work. These tools only cross the boundary between
13
13
  the image and the files.
14
14
 
15
+ ## What Is Committed
16
+
17
+ The user may commit through Iceberg at any time, and nothing tells you. What
18
+ you remember changing is not evidence that it is uncommitted, so ask before
19
+ calling anything unsaved or at risk.
20
+
21
+ - `git log` in the checkout says what was committed. Iceberg commits are
22
+ ordinary git commits, so it answers even when the image does not.
23
+ - `repository_search` with `isModified` names the repositories and packages
24
+ Iceberg marks as changed since they were last written. A mark says where to
25
+ look, not that something differs: an edit that was undone, or a test that
26
+ compiled and removed a method, leaves one too.
27
+ - `repository_change_list` compares a repository's marked packages with its
28
+ files and names those that really differ, and the files git sees changed.
29
+ Anything not committed is in one of them.
30
+ - To know whether one change is committed, compare `method_get` with the
31
+ class's file at `HEAD` (`git show HEAD:<path>`).
32
+
33
+ `git status` cannot answer for the image: Iceberg writes files only when it
34
+ commits or exports, so the checkout stays clean while the image holds changes.
35
+
15
36
  ## Out Of The Image
16
37
 
17
38
  1. Verify which repository you are about to write to: `repository_search` for
@@ -11,7 +11,8 @@ standalone image without a safer environment-specific recovery surface.
11
11
  ## Workflow
12
12
 
13
13
  1. Determine whether the failure is the client route, MCP server, image, or
14
- process.
14
+ process. A client that cannot reach the server says nothing yet about the
15
+ image.
15
16
  2. Preserve the image, changes, sources, VM logs, launch command, MCP URL, and
16
17
  repository/Git facts before mutation.
17
18
  3. Restart the same image first. Inspect `isRunning`, `isListening`, and
@@ -19,7 +20,10 @@ standalone image without a safer environment-specific recovery surface.
19
20
  4. Create a replacement image only after preserving the original. Use
20
21
  `pharo-project-load` to restore MCP and the target project.
21
22
  5. Recover changes by inspecting Epicea history before confirmed application.
22
- Use `pharo-image-sync` before repository attachment or Tonel export.
23
+ History lists every change since the image started, committed or not:
24
+ check a change against the checkout's `git log` before naming it as lost,
25
+ as `pharo-image-sync` says. Use it too before repository attachment or
26
+ Tonel export.
23
27
  6. Verify the recovered behavior with focused inspection or tests.
24
28
 
25
29
  ## Stop And Ask
@@ -17,6 +17,9 @@ rather than letting source stand in for it.
17
17
  agents working in it at once share every edit, and one export writes both
18
18
  their changes into one diff. One writer at a time.
19
19
  - Tools change the running image but never save it; use a safe image boundary.
20
+ - The user may commit through Iceberg while you work, and nothing reports it.
21
+ What you remember changing is not evidence that it is uncommitted: ask the
22
+ image and the checkout before calling any work unsaved or at risk.
20
23
 
21
24
  ## Context Loading
22
25
 
@@ -27,8 +30,8 @@ rather than letting source stand in for it.
27
30
  call came back with: read
28
31
  [tool reference](pharo-references/tool-reference.md).
29
32
  - Before loading a project: use `skills/pharo-project-load/SKILL.md`.
30
- - Before moving code between the image and its files: use
31
- `skills/pharo-image-sync/SKILL.md`.
33
+ - Before moving code between the image and its files, or saying what is not
34
+ committed yet: use `skills/pharo-image-sync/SKILL.md`.
32
35
  - Before reproducing smalltalkCI or GitHub failures: use
33
36
  `skills/pharo-ci-repro/SKILL.md`.
34
37
  - Before profiling or optimizing Pharo code: use