@logicseek/hello-cc 1.1.0-rc.5 → 1.1.0-rc.6
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/CHANGELOG.md
CHANGED
|
@@ -16,6 +16,29 @@ the release description from the current changelog section. Use
|
|
|
16
16
|
`npm run release:github` with `GH_TOKEN` or `GITHUB_TOKEN` only for local
|
|
17
17
|
backfills.
|
|
18
18
|
|
|
19
|
+
## 1.1.0-rc.6
|
|
20
|
+
|
|
21
|
+
### Summary
|
|
22
|
+
|
|
23
|
+
This preview makes the official Harness inbox acceptance observer tolerate
|
|
24
|
+
brief SQLite locks while another process updates the same isolated database.
|
|
25
|
+
It continues the existing preview channel and retains the rc.5 desktop bridge.
|
|
26
|
+
|
|
27
|
+
### Highlights
|
|
28
|
+
|
|
29
|
+
- Bound read-only acceptance queries with a busy timeout instead of failing
|
|
30
|
+
immediately on transient contention. Preserve failures for invalid queries
|
|
31
|
+
and locks that outlast the bound.
|
|
32
|
+
- Keep the rc.5 archive and tag immutable, including its original macOS
|
|
33
|
+
acceptance failure receipt. This change does not alter product database
|
|
34
|
+
policy, replay messages, or expand desktop endpoint access.
|
|
35
|
+
|
|
36
|
+
### Validation
|
|
37
|
+
|
|
38
|
+
An independent SQLite writer exercises a short held lock and the observer's
|
|
39
|
+
bounded wait. The release also retains separate source, installed-package,
|
|
40
|
+
official-runtime and actual Desktop acceptance boundaries.
|
|
41
|
+
|
|
19
42
|
## 1.1.0-rc.5
|
|
20
43
|
|
|
21
44
|
### Summary
|
package/package.json
CHANGED
|
@@ -11,9 +11,9 @@ import { createHash, randomUUID } from 'node:crypto';
|
|
|
11
11
|
import { spawnSync } from 'node:child_process';
|
|
12
12
|
import { fileURLToPath, pathToFileURL } from 'node:url';
|
|
13
13
|
import { setTimeout as delay } from 'node:timers/promises';
|
|
14
|
-
import { DatabaseSync } from 'node:sqlite';
|
|
15
14
|
import { checkDshRuntime } from '../lib/integrations/dsh-cordis.mjs';
|
|
16
15
|
import { JsonRpcProcess } from '../lib/integrations/native/jsonrpc.mjs';
|
|
16
|
+
import { readAcceptanceRows } from './helpers/sqlite-observer.mjs';
|
|
17
17
|
|
|
18
18
|
const args = process.argv.slice(2);
|
|
19
19
|
if (args.includes('--help')) {
|
|
@@ -44,7 +44,7 @@ const traceFile = path.join(sandbox, 'events.jsonl');
|
|
|
44
44
|
const hash = file => createHash('sha256').update(fs.readFileSync(file)).digest('hex');
|
|
45
45
|
const sources = ['lib/integrations/dsh-cordis.mjs', 'lib/integrations/dsh-inbox.mjs',
|
|
46
46
|
'lib/integrations/dsh-collaboration.mjs', 'lib/core/coordination/messages.mjs',
|
|
47
|
-
'lib/coordination-state.mjs', 'scripts/dsh-inbox-acceptance.mjs'];
|
|
47
|
+
'lib/coordination-state.mjs', 'scripts/dsh-inbox-acceptance.mjs', 'scripts/helpers/sqlite-observer.mjs'];
|
|
48
48
|
const receipt = { schemaVersion: 1, startedAt: new Date().toISOString(), baseline: '0.2.0-rc.2',
|
|
49
49
|
mode: 'Official Cordis Agent runtime; deterministic local model; isolated sessions; no Desktop UI',
|
|
50
50
|
realModelCalls: false, explicitPromptRequests: 0, permissions: [], checks: [], completed: false,
|
|
@@ -67,8 +67,7 @@ function rows(root, sql, ...values) {
|
|
|
67
67
|
databases.set(root, childNode(['--input-type=module', '-e',
|
|
68
68
|
`import { projectDbPath } from ${JSON.stringify(module)}; console.log(projectDbPath(process.argv[1]));`, root], root));
|
|
69
69
|
}
|
|
70
|
-
|
|
71
|
-
try { return db.prepare(sql).all(...values); } finally { db.close(); }
|
|
70
|
+
return readAcceptanceRows(databases.get(root), sql, ...values);
|
|
72
71
|
}
|
|
73
72
|
const events = () => fs.existsSync(traceFile)
|
|
74
73
|
? fs.readFileSync(traceFile, 'utf8').trim().split('\n').filter(Boolean).map(line => JSON.parse(line)) : [];
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { DatabaseSync } from 'node:sqlite';
|
|
2
|
+
|
|
3
|
+
// Acceptance observers race the real runtime's short-lived SQLite connections.
|
|
4
|
+
// Match its bounded busy timeout without retrying tasks or hiding query errors.
|
|
5
|
+
export function readAcceptanceRows(database, sql, ...values) {
|
|
6
|
+
const db = new DatabaseSync(database, { readOnly: true, timeout: 5000 });
|
|
7
|
+
try { return db.prepare(sql).all(...values); }
|
|
8
|
+
finally { db.close(); }
|
|
9
|
+
}
|