@evref-bl/pharo-mcp 3.4.0 → 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: 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
|
-
|
|
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
|
|
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
|