@hasna/recordings 0.3.8 → 0.3.9
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/bun.lock +26 -26
- package/dist/cli/index.js +915 -164
- package/dist/http/client.d.ts +6 -4
- package/dist/http/client.d.ts.map +1 -1
- package/dist/index.js +1751 -44
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/mcp/index.js +872 -121
- package/dist/server/index.js +52 -192
- package/dist/storage.js +1744 -37
- package/dist/store.d.ts.map +1 -1
- package/package.json +2 -2
- package/scripts/release-suite-gate.ts +17 -24
- package/src/native/Recordings/RecordingsLib/Info.plist +2 -2
package/dist/store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EACV,SAAS,EACT,oBAAoB,EACpB,eAAe,EACf,KAAK,EACL,OAAO,EACR,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EAAqC,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EACV,SAAS,EACT,oBAAoB,EACpB,eAAe,EACf,KAAK,EACL,OAAO,EACR,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EAAqC,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAUzF,eAAO,MAAM,GAAG,eAAe,CAAC;AAEhC,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAGhC,eAAe,CAAC,KAAK,EAAE,oBAAoB,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1F,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IACpD,cAAc,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IAC/D,eAAe,CAAC,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5D,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IAChF,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC;IAG7C,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IACjF,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IAClD,UAAU,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAC/B,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IACxD,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IAGjF,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACpF,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACtD,YAAY,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAGnC,YAAY,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnD;AA4QD,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,KAAK,EACZ,MAAM,CAAC,EAAE,eAAe,GACvB,OAAO,CAAC,MAAM,CAAC,CA0BjB;AAID;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,GAAG,GAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GAAG,KAAK,CAMzG;AAED,2CAA2C;AAC3C,wBAAgB,YAAY,IAAI,IAAI,CAEnC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hasna/recordings",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.9",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Speech-to-text recording tool with MCP and CLI — records, transcribes, and optionally enhances text using AI",
|
|
6
6
|
"repository": {
|
|
@@ -84,7 +84,7 @@
|
|
|
84
84
|
"LICENSE"
|
|
85
85
|
],
|
|
86
86
|
"dependencies": {
|
|
87
|
-
"@hasna/contracts": "0.13.
|
|
87
|
+
"@hasna/contracts": "0.13.4",
|
|
88
88
|
"@hasna/events": "0.1.11",
|
|
89
89
|
"@modelcontextprotocol/sdk": "^1.12.1",
|
|
90
90
|
"chalk": "^5.4.1",
|
|
@@ -4,14 +4,7 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Runs the app's own Linux-CI-partitioned suite — `test:gated`, which covers
|
|
6
6
|
* every discovered `*.test.ts` (the quarantine file is empty by design) — and
|
|
7
|
-
* fails on ANY failure
|
|
8
|
-
*
|
|
9
|
-
* Why the allowlist exists: the suite is red at this release's base sha with
|
|
10
|
-
* exactly two measured pre-existing classes (both reproduced identically at
|
|
11
|
-
* the pristine base commit 4a9b31e56, classified non-blocking by the release
|
|
12
|
-
* lineage). The old `prepublishOnly` (`bun run test`, bare) could not pass on
|
|
13
|
-
* any box for independent reasons: no timeout flag for the long macOS
|
|
14
|
-
* lifecycle suites, and the ambient hosted-store environment on fleet boxes.
|
|
7
|
+
* fails on ANY failure.
|
|
15
8
|
*
|
|
16
9
|
* The allowlist is SELF-INVALIDATING, the same property as
|
|
17
10
|
* `.github/linux-quarantine.txt`: if an allowlisted failure stops failing
|
|
@@ -19,6 +12,21 @@
|
|
|
19
12
|
* 7-day window), the gate exits 1 and demands the entry be removed. Any
|
|
20
13
|
* failure outside the allowlist fails the gate.
|
|
21
14
|
*
|
|
15
|
+
* Allowlist history (both entries removed 2026-08-23 by the 0.3.9 release
|
|
16
|
+
* lane, publish-all-recordings, per this gate's own self-invalidation
|
|
17
|
+
* contract — each failure stopped failing at head 15b6181c6):
|
|
18
|
+
* - service-contract-manifest.test.ts (credential_seam_compliance): the
|
|
19
|
+
* contracts-surface migration landed in hasna/apps PR #957
|
|
20
|
+
* (resolveStorageClient now imported from @hasna/contracts/client), so
|
|
21
|
+
* the conformance check passes; the entry's own reason said "Remove this
|
|
22
|
+
* entry when the lane lands."
|
|
23
|
+
* - native-app-companion-contract.test.ts (release supply-chain policy):
|
|
24
|
+
* the companion build's --minimum-release-age=604800 quarantine no longer
|
|
25
|
+
* bites because @hasna/contracts is on the fleet minimumReleaseAgeExcludes
|
|
26
|
+
* list (the sanctioned mechanism for fresh publishes); the test passes.
|
|
27
|
+
* Both removals are the gate's designed behaviour, not a weakening: any
|
|
28
|
+
* future failure now fails the gate with zero allowlisted exceptions.
|
|
29
|
+
*
|
|
22
30
|
* The gate FAILS CLOSED on abnormal termination: a non-zero suite exit is
|
|
23
31
|
* acceptable only when it is fully explained by allowlisted failures — the
|
|
24
32
|
* runner completed (its summary line is present), every parsed failure is
|
|
@@ -34,22 +42,7 @@ import { join } from "node:path";
|
|
|
34
42
|
|
|
35
43
|
const SEP = "::";
|
|
36
44
|
|
|
37
|
-
const GATED_KEYS: Array<{ file: string; test: string; owner: string; reason: string }> = [
|
|
38
|
-
{
|
|
39
|
-
file: "src/__tests__/service-contract-manifest.test.ts",
|
|
40
|
-
test: "the repository satisfies the tracked contract kit's conformance checks",
|
|
41
|
-
owner: "contracts-surface lanes (hasna/apps PRs 743/749/754 lineage)",
|
|
42
|
-
reason:
|
|
43
|
-
"credential_seam_compliance flags the vendored client seam (resolveStorageClient in src/http/client.ts) and the RECORDINGS_API_KEY env read (src/lib/config.ts) - an in-flight migration owned by the contracts-surface lanes; classified pre-existing at the release base. Remove this entry when the lane lands.",
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
file: "src/__tests__/native-app-companion-contract.test.ts",
|
|
47
|
-
test: "(unnamed)",
|
|
48
|
-
owner: "release supply-chain policy",
|
|
49
|
-
reason:
|
|
50
|
-
"build_companion_cli.sh enforces --minimum-release-age=604800, so the companion build refuses @hasna/contracts@0.13.3 (published 2026-08-21T13:13Z) inside its 7-day quarantine by design until 2026-08-28. The npm publish path does not build the companion. Remove this entry when the package ages out.",
|
|
51
|
-
},
|
|
52
|
-
];
|
|
45
|
+
const GATED_KEYS: Array<{ file: string; test: string; owner: string; reason: string }> = [];
|
|
53
46
|
|
|
54
47
|
function run(argv: string[], env: Record<string, string>): { status: number; stdout: string; stderr: string } {
|
|
55
48
|
const res = spawnSync(process.execPath, argv, { encoding: "utf8", env: { ...process.env, ...env } });
|
|
@@ -17,11 +17,11 @@
|
|
|
17
17
|
<key>CFBundleIdentifier</key>
|
|
18
18
|
<string>com.hasna.recordings</string>
|
|
19
19
|
<key>CFBundleVersion</key>
|
|
20
|
-
<string>0.3.
|
|
20
|
+
<string>0.3.9</string>
|
|
21
21
|
<key>CFBundlePackageType</key>
|
|
22
22
|
<string>APPL</string>
|
|
23
23
|
<key>CFBundleShortVersionString</key>
|
|
24
|
-
<string>0.3.
|
|
24
|
+
<string>0.3.9</string>
|
|
25
25
|
<key>LSMinimumSystemVersion</key>
|
|
26
26
|
<string>26.0</string>
|
|
27
27
|
<key>NSMicrophoneUsageDescription</key>
|