@parall/parall 1.18.0 → 1.20.0
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 +3 -3
- package/skills/parall-wiki/SKILL.md +36 -0
- package/src/gateway.ts +2 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@parall/parall",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.20.0",
|
|
4
4
|
"description": "OpenClaw channel plugin for Parall IM",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
"openclaw.plugin.json"
|
|
16
16
|
],
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@parall/
|
|
19
|
-
"@parall/
|
|
18
|
+
"@parall/agent-core": "1.20.0",
|
|
19
|
+
"@parall/sdk": "1.20.0"
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
22
22
|
"@types/node": "^22.0.0",
|
|
@@ -82,6 +82,42 @@ npx @parall/cli@latest wiki changeset create <slug> --update <changesetId>
|
|
|
82
82
|
|
|
83
83
|
The title is inherited from the original changeset — no need to repeat it.
|
|
84
84
|
|
|
85
|
+
## Handling sync conflicts
|
|
86
|
+
|
|
87
|
+
`wiki sync` runs a three-way merge. When both you and the server changed the
|
|
88
|
+
same file, sync **does not overwrite your work**. It leaves your file intact
|
|
89
|
+
and drops the upstream version under `.parall-wiki/conflicts/`:
|
|
90
|
+
|
|
91
|
+
| Marker | Meaning |
|
|
92
|
+
|--------|---------|
|
|
93
|
+
| `.parall-wiki/conflicts/<path>.remote` | Server has different content (concurrent edit, new file collision, or server changed a file you deleted) |
|
|
94
|
+
| `.parall-wiki/conflicts/<path>.remote-deleted` | Server deleted the file; you still have edits |
|
|
95
|
+
|
|
96
|
+
stderr prints one line per conflict. Recovery:
|
|
97
|
+
|
|
98
|
+
**Accept upstream** (drop your edit):
|
|
99
|
+
```bash
|
|
100
|
+
cp .parall-wiki/conflicts/<path>.remote <path>
|
|
101
|
+
npx @parall/cli@latest wiki sync
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
**Keep yours** (or hand-merge, then propose):
|
|
105
|
+
```bash
|
|
106
|
+
# edit <path> to final content
|
|
107
|
+
npx @parall/cli@latest wiki diff <slug>
|
|
108
|
+
npx @parall/cli@latest wiki changeset create <slug> --title "Reconcile <path>"
|
|
109
|
+
npx @parall/cli@latest wiki sync # fast-forwards after server merges
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
**Accept server delete** (`.remote-deleted` only):
|
|
113
|
+
```bash
|
|
114
|
+
rm <path>
|
|
115
|
+
npx @parall/cli@latest wiki sync
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
Sync failures (`download`, `shape-conflict`) set exit code 1 and retry on
|
|
119
|
+
next sync. Conflicts exit 0 — they need your decision, not a retry.
|
|
120
|
+
|
|
85
121
|
## Discarding local changes
|
|
86
122
|
|
|
87
123
|
```bash
|
package/src/gateway.ts
CHANGED
|
@@ -5,6 +5,7 @@ import type { ChannelPlugin } from "openclaw/plugin-sdk/core";
|
|
|
5
5
|
type ChannelGatewayAdapter<T = unknown> = NonNullable<ChannelPlugin<T>["gateway"]>;
|
|
6
6
|
import {
|
|
7
7
|
ParallAgentGateway,
|
|
8
|
+
parseShutdownDeadlineMs,
|
|
8
9
|
type DispatchAdapter,
|
|
9
10
|
type ParallEvent,
|
|
10
11
|
type RuntimeEvent,
|
|
@@ -304,6 +305,7 @@ export const parallGateway: ChannelGatewayAdapter<ResolvedParallAccount> = {
|
|
|
304
305
|
runtimeRef: { hostname: os.hostname(), pid: process.pid },
|
|
305
306
|
dispatchAdapter,
|
|
306
307
|
log,
|
|
308
|
+
shutdownDeadlineMs: parseShutdownDeadlineMs(process.env.PRLL_SHUTDOWN_DEADLINE_MS),
|
|
307
309
|
onConfigUpdate: async () => {
|
|
308
310
|
await fetchAndApplyPlatformConfig(configManagerOpts);
|
|
309
311
|
},
|