@getopencrawl/cli 0.4.10 → 0.4.12

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.
Files changed (2) hide show
  1. package/README.md +25 -0
  2. package/package.json +6 -6
package/README.md CHANGED
@@ -108,12 +108,37 @@ After signing in, run `opencrawl collect install` to install Claude Code and Cod
108
108
 
109
109
  Messages, tool arguments/results and attachments are collected with native session IDs and a stable installation ID. System/developer prompts are excluded. The hosted service determines the current team from login and validates human attribution. Existing collectors and queued personal-scope uploads automatically use that team after updating, without reinstalling or resetting. Self-hosted users can supply `OPENCRAWL_SESSIONS_TOKEN` and `--api` for the portable receiver. See [capture architecture and limits](../docs/session-capture.md).
110
110
 
111
+ Newly spooled events receive a versioned ID after attachment extraction and all
112
+ event normalization. The ID covers the source record/notice identity and every
113
+ field of the final JSON event. For the same source identity, equivalent final-event
114
+ JSON property ordering gives the same ID; changed file bytes, attachment
115
+ availability, or event metadata give a new ID.
116
+ Queued batches retain their existing bytes and IDs across upgrades and retries.
117
+ This upgrade preserves transcript cursors and does not trigger history backfill.
118
+ Explicitly rereading history captured before this identity format, replacing or
119
+ truncating a transcript, or recovering an older enqueue-before-checkpoint crash
120
+ can produce a one-time duplicate of an unchanged legacy event under a new ID.
121
+ Previous normalized payloads are not retained locally after acknowledgement, so
122
+ the collector cannot safely infer that an old raw-record ID represents the same
123
+ attachment content. It does not rewrite or choose between historical revisions.
124
+
111
125
  The harness runs each hook asynchronously and owns its process. The hook saves
112
126
  its notice locally, then competes for one nonblocking uploader lock. The winner
113
127
  parses permitted transcripts, spools immutable batches and uploads; other hooks
114
128
  exit after saving their notices. On Unix the shell and Node dispatcher replace
115
129
  themselves with the native CLI using exec, keeping the harness-owned PID. Capture
116
130
  never detaches a child, starts a service or launches a replacement worker.
131
+ Each uploader has a 90-second deadline, including during outages or lock waits,
132
+ and checks once per second that its original parent is still alive. Parent loss
133
+ also ends the uploader. Unacknowledged batches stay queued for the next hook;
134
+ explicit foreground flush/backfill is not subject to this background deadline.
135
+ Uploader/session ownership uses SQLite transaction locks built into the CLI runtime;
136
+ no database service is installed. The OS releases ownership on process death.
137
+ Numeric PID files remain for diagnostics and conservative compatibility: a live
138
+ or uncertain legacy owner is not evicted, including a potentially reused PID.
139
+ Full mutual exclusion with older clients that ignore the SQLite lock is not promised.
140
+ If the harness itself dies, the host must reap its adopted children, as for any
141
+ process; capture does not install an init service to replace that host duty.
117
142
  Foreground flush/backfill waits for upload ownership and confirmed receipts.
118
143
 
119
144
  No systemd, launchd, cron, or installed daemon is required. Reinstall removes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@getopencrawl/cli",
3
- "version": "0.4.10",
3
+ "version": "0.4.12",
4
4
  "description": "OpenCrawl CLI: sign in now, query the index as features become available",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",
@@ -24,10 +24,10 @@
24
24
  "registry": "https://registry.npmjs.org"
25
25
  },
26
26
  "optionalDependencies": {
27
- "@getopencrawl/cli-darwin-arm64": "0.4.10",
28
- "@getopencrawl/cli-darwin-x64": "0.4.10",
29
- "@getopencrawl/cli-linux-arm64": "0.4.10",
30
- "@getopencrawl/cli-linux-x64": "0.4.10",
31
- "@getopencrawl/cli-win32-x64": "0.4.10"
27
+ "@getopencrawl/cli-darwin-arm64": "0.4.12",
28
+ "@getopencrawl/cli-darwin-x64": "0.4.12",
29
+ "@getopencrawl/cli-linux-arm64": "0.4.12",
30
+ "@getopencrawl/cli-linux-x64": "0.4.12",
31
+ "@getopencrawl/cli-win32-x64": "0.4.12"
32
32
  }
33
33
  }