diff --git a/.agents/pm/history/_workspace.jsonl b/.agents/pm/history/_workspace.jsonl index 250cb08..298c13a 100644 --- a/.agents/pm/history/_workspace.jsonl +++ b/.agents/pm/history/_workspace.jsonl @@ -39,3 +39,5 @@ {"hash_algorithm":"sha256","ts":"2026-09-28T05:27:33.014Z","author":"claude-hub","author_source":"asserted","agent_harness":"claude-code","agent_model":"claude-opus-5-5","agent_model_source":"probe","agent_instance":"acec329f9c06ecc0d6dbecd4","agent_provenance":{"model":{"value":"claude-opus-5-5","source":"probe"},"effort":{"value":"high","source":"environment"},"role":{"value":"implementer","source":"argv"},"topic":null,"version":{"value":"2.1.283","source":"probe"}},"op":"policy_refused","patch":[],"before_hash":"316b3153ae19030ba63b9440fcf07d26200698b54ef8b936da54442254e86ec8","after_hash":"316b3153ae19030ba63b9440fcf07d26200698b54ef8b936da54442254e86ec8","item_hash_version":3,"message":"Workflow policy refused a proposed item mutation.","context":{"item_id":"ops-jzp5","operation":"close","workflow_policies":[{"policy_id":"completeness-issue","policy_fingerprint":"29451c1f80adfbacaeaa7936a6a7f69fe058f29da602f3dfbc941152e36a7130","rule":"require_fields","effect":"refuse","satisfied":false,"missing_fields":["repro_steps","expected_result"],"remediation":"Supply the declared required fields before this lifecycle transition."},{"policy_id":"fleet-closed-resolution","policy_fingerprint":"e13f80d0b1fcef3c8ead9b5e9a32723dc589cc189ef68aa23badea68dace3a17","rule":"require_fields","effect":"refuse","satisfied":false,"missing_fields":["resolution"],"remediation":"Supply the declared required fields before this lifecycle transition."}],"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"claude_session_file","rule_version":"v1"},"version":{"status":"resolved","resolver":"claude_session_file","rule_version":"v1"}}},"event_class":"substantive","record_hash_version":1,"record_hash":"a5c6652d313d2ed3fb3a672bc16456d5f7851c457114591ce6b136d81d556284"} {"hash_algorithm":"sha256","ts":"2026-10-04T16:58:39.317Z","author":"claude-orchestrator","author_source":"asserted","agent_harness":"claude-code","agent_model":"claude-opus-5-5","agent_model_source":"probe","agent_instance":"4b273145923a68729ab394ab","agent_provenance":{"model":{"value":"claude-opus-5-5","source":"probe"},"effort":{"value":"high","source":"environment"},"role":{"value":"implementer","source":"argv"},"topic":null,"version":{"value":"2.1.289","source":"probe"}},"op":"policy_refused","patch":[],"before_hash":"316b3153ae19030ba63b9440fcf07d26200698b54ef8b936da54442254e86ec8","after_hash":"316b3153ae19030ba63b9440fcf07d26200698b54ef8b936da54442254e86ec8","item_hash_version":3,"message":"Workflow policy refused a proposed item mutation.","context":{"item_id":"ops-k1lf","operation":"close","workflow_policies":[{"policy_id":"completeness-task","policy_fingerprint":"5707ce9fab232f6d4a5baae932cfadbccf3029f18b385032e967aa22a9c069db","rule":"require_fields","effect":"refuse","satisfied":true,"missing_fields":[],"remediation":"Supply the declared required fields before this lifecycle transition."},{"policy_id":"fleet-closed-resolution","policy_fingerprint":"e13f80d0b1fcef3c8ead9b5e9a32723dc589cc189ef68aa23badea68dace3a17","rule":"require_fields","effect":"refuse","satisfied":false,"missing_fields":["resolution"],"remediation":"Supply the declared required fields before this lifecycle transition."}],"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"claude_session_file","rule_version":"v1"},"version":{"status":"resolved","resolver":"claude_session_file","rule_version":"v1"}}},"event_class":"substantive","record_hash_version":1,"record_hash":"209d68e6cb26d61644e094107949ebb57d0468f6a0d54064261ec6e5e5f5f671"} {"hash_algorithm":"sha256","ts":"2026-10-04T17:02:04.014Z","author":"claude-orchestrator","author_source":"asserted","agent_harness":"claude-code","agent_model":"claude-opus-5-5","agent_model_source":"probe","agent_instance":"4b273145923a68729ab394ab","agent_provenance":{"model":{"value":"claude-opus-5-5","source":"probe"},"effort":{"value":"high","source":"environment"},"role":{"value":"implementer","source":"argv"},"topic":null,"version":{"value":"2.1.289","source":"probe"}},"op":"policy_refused","patch":[],"before_hash":"316b3153ae19030ba63b9440fcf07d26200698b54ef8b936da54442254e86ec8","after_hash":"316b3153ae19030ba63b9440fcf07d26200698b54ef8b936da54442254e86ec8","item_hash_version":3,"message":"Workflow policy refused a proposed item mutation.","context":{"item_id":"ops-k1lf","operation":"close","workflow_policies":[{"policy_id":"completeness-task","policy_fingerprint":"5707ce9fab232f6d4a5baae932cfadbccf3029f18b385032e967aa22a9c069db","rule":"require_fields","effect":"refuse","satisfied":true,"missing_fields":[],"remediation":"Supply the declared required fields before this lifecycle transition."},{"policy_id":"fleet-closed-resolution","policy_fingerprint":"e13f80d0b1fcef3c8ead9b5e9a32723dc589cc189ef68aa23badea68dace3a17","rule":"require_fields","effect":"refuse","satisfied":false,"missing_fields":["resolution"],"remediation":"Supply the declared required fields before this lifecycle transition."}],"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"claude_session_file","rule_version":"v1"},"version":{"status":"resolved","resolver":"claude_session_file","rule_version":"v1"}}},"event_class":"substantive","record_hash_version":1,"record_hash":"9142d4488d5cbaa0d86e9391588fc4107dca01aab9cbd3b96b5ba0dfd5b00ed4"} +{"hash_algorithm":"sha256","ts":"2026-10-04T17:04:04.440Z","author":"claude-orchestrator","author_source":"asserted","agent_harness":"claude-code","agent_model":"claude-opus-5-5","agent_model_source":"probe","agent_instance":"4b273145923a68729ab394ab","agent_provenance":{"model":{"value":"claude-opus-5-5","source":"probe"},"effort":{"value":"high","source":"environment"},"role":{"value":"implementer","source":"argv"},"topic":null,"version":{"value":"2.1.289","source":"probe"}},"op":"policy_refused","patch":[],"before_hash":"316b3153ae19030ba63b9440fcf07d26200698b54ef8b936da54442254e86ec8","after_hash":"316b3153ae19030ba63b9440fcf07d26200698b54ef8b936da54442254e86ec8","item_hash_version":3,"message":"Workflow policy refused a proposed item mutation.","context":{"item_id":"ops-zq8c","operation":"close","workflow_policies":[{"policy_id":"completeness-issue","policy_fingerprint":"29451c1f80adfbacaeaa7936a6a7f69fe058f29da602f3dfbc941152e36a7130","rule":"require_fields","effect":"refuse","satisfied":false,"missing_fields":["repro_steps","expected_result"],"remediation":"Supply the declared required fields before this lifecycle transition."},{"policy_id":"fleet-closed-resolution","policy_fingerprint":"e13f80d0b1fcef3c8ead9b5e9a32723dc589cc189ef68aa23badea68dace3a17","rule":"require_fields","effect":"refuse","satisfied":true,"missing_fields":[],"remediation":"Supply the declared required fields before this lifecycle transition."}],"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"claude_session_file","rule_version":"v1"},"version":{"status":"resolved","resolver":"claude_session_file","rule_version":"v1"}}},"event_class":"substantive","record_hash_version":1,"record_hash":"ac79c2ef244836a47f1330079dabec26c52783ac83fc5dcba705680a36111e9f"} +{"hash_algorithm":"sha256","ts":"2026-10-04T17:04:24.223Z","author":"claude-orchestrator","author_source":"asserted","agent_harness":"claude-code","agent_model":"claude-opus-5-5","agent_model_source":"probe","agent_instance":"4b273145923a68729ab394ab","agent_provenance":{"model":{"value":"claude-opus-5-5","source":"probe"},"effort":{"value":"high","source":"environment"},"role":{"value":"implementer","source":"argv"},"topic":null,"version":{"value":"2.1.289","source":"probe"}},"op":"policy_refused","patch":[],"before_hash":"316b3153ae19030ba63b9440fcf07d26200698b54ef8b936da54442254e86ec8","after_hash":"316b3153ae19030ba63b9440fcf07d26200698b54ef8b936da54442254e86ec8","item_hash_version":3,"message":"Workflow policy refused a proposed item mutation.","context":{"item_id":"ops-zq8c","operation":"close","workflow_policies":[{"policy_id":"completeness-issue","policy_fingerprint":"29451c1f80adfbacaeaa7936a6a7f69fe058f29da602f3dfbc941152e36a7130","rule":"require_fields","effect":"refuse","satisfied":false,"missing_fields":["repro_steps","expected_result"],"remediation":"Supply the declared required fields before this lifecycle transition."},{"policy_id":"fleet-closed-resolution","policy_fingerprint":"e13f80d0b1fcef3c8ead9b5e9a32723dc589cc189ef68aa23badea68dace3a17","rule":"require_fields","effect":"refuse","satisfied":true,"missing_fields":[],"remediation":"Supply the declared required fields before this lifecycle transition."}],"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"claude_session_file","rule_version":"v1"},"version":{"status":"resolved","resolver":"claude_session_file","rule_version":"v1"}}},"event_class":"substantive","record_hash_version":1,"record_hash":"ac9314e710b163463ed2c54576520ff7e6a26749b52d9ec72b7b70fa7b8a817c"} diff --git a/.agents/pm/history/ops-zq8c.jsonl b/.agents/pm/history/ops-zq8c.jsonl index 155eacd..011fe0a 100644 --- a/.agents/pm/history/ops-zq8c.jsonl +++ b/.agents/pm/history/ops-zq8c.jsonl @@ -16,3 +16,18 @@ {"hash_algorithm":"sha256","ts":"2026-10-02T23:43:43.564Z","author":"codex-sol-land","author_source":"asserted","agent_harness":"codex","agent_model":"gpt-6.1-sol","agent_model_source":"probe","agent_instance":"6edbeed2935f1e5c041f14f3","agent_provenance":{"model":{"value":"gpt-6.1-sol","source":"probe"},"effort":{"value":"high","source":"probe"},"role":null,"topic":null},"op":"comment_add","patch":[{"op":"add","path":"/metadata/comments/4","value":{"created_at":"2026-10-02T23:43:43.564Z","author":"codex-sol-land","text":"Resumed verification: npm ci, current-base rebase, fresh committed-dist comparison, strict local tracker health with required merge drivers, npm run release:check, and bun install --no-save all passed. Full gate: 454 tests, 452 pass, 2 skips; configured coverage thresholds unchanged. PM-linked test/lint-and-duplication-gates.test.ts passed. Earlier findings and technical refusals retained; no new source fix was needed in this restart. Exact pushed-head CI and substantive reviewer availability remain separate checks; no merge, release, publication or item closure."}},{"op":"replace","path":"/metadata/updated_at","value":"2026-10-02T23:43:43.564Z"}],"before_hash":"6ac1d4bdc419a042e00f1b4d12fc8e9c345b09a321e0265fbb3ec6a3eb2bbe51","after_hash":"214a528505a9b6a745c3b0a6903ce481c69e3b1bf4ba409a640859772b51077b","item_hash_version":3,"context":{"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"effort":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"version":{"status":"unavailable","reason":"harness_unavailable","resolver":"ai_agent_version","rule_version":"v1"}}},"event_class":"substantive","record_hash_version":1,"record_hash":"1b739575d76411204a9906c44cff2d620b3aceeb1555d2656fcdb5eac9ec7aff"} {"hash_algorithm":"sha256","ts":"2026-10-02T23:43:44.146Z","author":"codex-sol-land","author_source":"asserted","agent_harness":"codex","agent_model":"gpt-6.1-sol","agent_model_source":"probe","agent_instance":"6edbeed2935f1e5c041f14f3","agent_provenance":{"model":{"value":"gpt-6.1-sol","source":"probe"},"effort":{"value":"high","source":"probe"},"role":{"value":"implementer","source":"argv"},"topic":null},"op":"update","patch":[{"op":"replace","path":"/metadata/updated_at","value":"2026-10-02T23:43:44.146Z"},{"op":"replace","path":"/metadata/status","value":"blocked"}],"before_hash":"214a528505a9b6a745c3b0a6903ce481c69e3b1bf4ba409a640859772b51077b","after_hash":"698bf16317f0d2bc627c8c728f6ab62bcce054de2d451a317fb809a678575cc2","item_hash_version":3,"context":{"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"effort":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"version":{"status":"unavailable","reason":"harness_unavailable","resolver":"ai_agent_version","rule_version":"v1"}}},"event_class":"substantive","record_hash_version":1,"record_hash":"839063708974060c9716a4a3416b3011ce9fe4412e9088c57ec1df6184fded8a"} {"hash_algorithm":"sha256","ts":"2026-10-02T23:43:44.706Z","author":"codex-sol-land","author_source":"asserted","agent_harness":"codex","agent_model":"gpt-6.1-sol","agent_model_source":"probe","agent_instance":"6edbeed2935f1e5c041f14f3","agent_provenance":{"model":{"value":"gpt-6.1-sol","source":"probe"},"effort":{"value":"high","source":"probe"},"role":{"value":"implementer","source":"argv"},"topic":null},"op":"release","patch":[{"op":"remove","path":"/metadata/claim_principal"},{"op":"remove","path":"/metadata/assignee"},{"op":"replace","path":"/metadata/updated_at","value":"2026-10-02T23:43:44.706Z"}],"before_hash":"698bf16317f0d2bc627c8c728f6ab62bcce054de2d451a317fb809a678575cc2","after_hash":"aa8a30588c14ebc7b9b8043d5917583e80c8e4420e005587e700198a3f5f48b7","item_hash_version":3,"context":{"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"effort":{"status":"resolved","resolver":"codex_session_file","rule_version":"v1"},"version":{"status":"unavailable","reason":"harness_unavailable","resolver":"ai_agent_version","rule_version":"v1"}}},"event_class":"maintenance","record_hash_version":1,"record_hash":"cfa04ad60e9bf7cfd6bcb729ba90fb337ddf15d328c9f11ab9d40373c3b79e65"} +{"hash_algorithm":"sha256","ts":"2026-10-04T16:34:28.678Z","author":"pi-glm","author_source":"asserted","agent_harness":"pi","agent_model":"glm-5.3","agent_model_source":"environment","agent_instance":"8903cea4608c4033ffbb15c4","agent_provenance":{"model":{"value":"glm-5.3","source":"environment"},"effort":null,"role":{"value":"implementer","source":"argv"},"topic":null},"op":"claim","patch":[{"op":"replace","path":"/metadata/updated_at","value":"2026-10-04T16:34:28.678Z"},{"op":"add","path":"/metadata/assignee","value":"pi-glm"},{"op":"add","path":"/metadata/claim_principal","value":"pi-glm"}],"before_hash":"aa8a30588c14ebc7b9b8043d5917583e80c8e4420e005587e700198a3f5f48b7","after_hash":"d981e9d497b4d7209bbd87bda7e0a913d138b0dcbd2004ceb5e879f93209a530","item_hash_version":3,"event_class":"substantive","record_hash_version":1,"record_hash":"b1e840ab211892ebf12ab36ebf1ecd4901b4fd8991d911486bf26c4cf2e6f07e"} +{"hash_algorithm":"sha256","ts":"2026-10-04T16:34:29.166Z","author":"pi-glm","author_source":"asserted","agent_harness":"pi","agent_model":"glm-5.3","agent_model_source":"environment","agent_instance":"8903cea4608c4033ffbb15c4","agent_provenance":{"model":{"value":"glm-5.3","source":"environment"},"effort":null,"role":{"value":"implementer","source":"argv"},"topic":null},"op":"update","patch":[{"op":"replace","path":"/metadata/updated_at","value":"2026-10-04T16:34:29.166Z"},{"op":"replace","path":"/metadata/status","value":"in_progress"}],"before_hash":"d981e9d497b4d7209bbd87bda7e0a913d138b0dcbd2004ceb5e879f93209a530","after_hash":"07579259a8150ee628e631fdcdfe637e75338529b6b11fa0ed8856731a683bca","item_hash_version":3,"event_class":"substantive","record_hash_version":1,"record_hash":"a2a6687121d2d17e51e71fc73f2e9df5d0f0f329df0630202ac886910ad9d545"} +{"hash_algorithm":"sha256","ts":"2026-10-04T16:34:34.922Z","author":"pi-glm","author_source":"asserted","agent_harness":"pi","agent_model":"glm-5.3","agent_model_source":"environment","agent_instance":"8903cea4608c4033ffbb15c4","agent_provenance":{"model":{"value":"glm-5.3","source":"environment"},"effort":null,"role":null,"topic":null},"op":"comment_add","patch":[{"op":"add","path":"/metadata/comments/5","value":{"created_at":"2026-10-04T16:34:34.922Z","author":"pi-glm","text":"pi-glm restart on top of merged #132 (main d79c9bd): .ts/.tsx walking, --format typescript,tsx, per-format source sums, zero-files guards and their tests are already in main. Remaining delta for this task: .mts/.cts in the docstring walker (both the directory walk and the single-file path, excluding .d.mts/.d.cts), .mts/.cts in duplication matched-source scope + default globs + ignores, and failing-first tests proving undocumented .mts/.cts exports and duplicated .mts/.cts blocks are REFUSED while clean ones pass under default globs. Empirically verified both real engines (jscpd 4.3.0 and 5.4.0) already classify .mts/.cts under the typescript format, so --format stays typescript,tsx."}},{"op":"replace","path":"/metadata/updated_at","value":"2026-10-04T16:34:34.922Z"}],"before_hash":"07579259a8150ee628e631fdcdfe637e75338529b6b11fa0ed8856731a683bca","after_hash":"c8dfd66332d50d408522c0fa2e74f99b0af30fe1c234758c6d97edd76b0ba0fc","item_hash_version":3,"event_class":"substantive","record_hash_version":1,"record_hash":"cce57828e5513fa4e782b3641ebccc9ee7336b4d2824b244db9f9b9a13483909"} +{"hash_algorithm":"sha256","ts":"2026-10-04T16:36:38.021Z","author":"pi-glm","author_source":"asserted","agent_harness":"pi","agent_model":"glm-5.3","agent_model_source":"environment","agent_instance":"8903cea4608c4033ffbb15c4","agent_provenance":{"model":{"value":"glm-5.3","source":"environment"},"effort":null,"role":null,"topic":null},"op":"comment_add","patch":[{"op":"add","path":"/metadata/comments/6","value":{"created_at":"2026-10-04T16:36:38.021Z","author":"pi-glm","text":"TDD failing-first on main d79c9bd (before any source change): 'node --test --test-name-pattern mts test/docstrings.test.ts' — both new tests fail with 'docstring coverage: no TypeScript source files found ... (scanning zero files cannot pass vacuously)' because collectSourceFiles admits only .ts/.tsx; 'node --test --test-name-pattern \\.mts test/lint-and-duplication-gates.test.ts' — all three new tests fail: jscpd5 throws 'jscpd scanned 2 of 0 in-scope TypeScript sources at the one-token floor' for explicit mts/cts globs, and the default-glob clean and .d.mts/.d.cts cases exit 1 with 'no TypeScript sources were analyzed'. Five failing tests recorded; now fixing the source."}},{"op":"replace","path":"/metadata/updated_at","value":"2026-10-04T16:36:38.021Z"}],"before_hash":"c8dfd66332d50d408522c0fa2e74f99b0af30fe1c234758c6d97edd76b0ba0fc","after_hash":"202b01e7659e789e0f22586675aee9577ed0877ecaab9b1ca0b7814c951b273b","item_hash_version":3,"event_class":"substantive","record_hash_version":1,"record_hash":"e225ad961c43567bcc906a102e7d75a011a90c05e168cb42f82c6c791060a5b1"} +{"hash_algorithm":"sha256","ts":"2026-10-04T16:56:08.807Z","author":"pi-glm","author_source":"asserted","agent_harness":"pi","agent_model":"glm-5.3","agent_model_source":"environment","agent_instance":"8903cea4608c4033ffbb15c4","agent_provenance":{"model":{"value":"glm-5.3","source":"environment"},"effort":null,"role":null,"topic":null},"op":"docs_add","patch":[{"op":"add","path":"/metadata/docs/3/note","value":"Source issue: remaining .mts/.cts scope extension on top of merged #132"},{"op":"replace","path":"/metadata/docs/3/path","value":"https://github.com/unbraind/pm-ops/issues/128"},{"op":"add","path":"/metadata/docs/4","value":{"path":"https://github.com/unbraind/pm-ops/pull/132","scope":"project"}},{"op":"replace","path":"/metadata/updated_at","value":"2026-10-04T16:56:08.807Z"}],"before_hash":"202b01e7659e789e0f22586675aee9577ed0877ecaab9b1ca0b7814c951b273b","after_hash":"1591062e0f48d9e9fb474eb67ace0c7e7a018024e784d34bcb4e9168c74c6bcc","item_hash_version":3,"event_class":"maintenance","record_hash_version":1,"record_hash":"47e18546ffdba76df2017e3e9b4c334f9f6d8dc55eec6a94f1ed614e94f3d14e"} +{"hash_algorithm":"sha256","ts":"2026-10-04T16:56:23.167Z","author":"pi-glm","author_source":"asserted","agent_harness":"pi","agent_model":"glm-5.3","agent_model_source":"environment","agent_instance":"8903cea4608c4033ffbb15c4","agent_provenance":{"model":{"value":"glm-5.3","source":"environment"},"effort":null,"role":null,"topic":null},"op":"tests_add","patch":[{"op":"add","path":"/metadata/tests/2","value":{"command":"--help","scope":"project","provenance":{"author":"pi-glm","created_at":"2026-10-04T16:56:23.127Z","source_kind":"local_mutation","source_ref":"fix/gates-cover-tsx-sources"}}},{"op":"replace","path":"/metadata/updated_at","value":"2026-10-04T16:56:23.167Z"}],"before_hash":"1591062e0f48d9e9fb474eb67ace0c7e7a018024e784d34bcb4e9168c74c6bcc","after_hash":"19081aa1b0db2d2ccd48543e36b5a0379d95381017a278d98732633755f36bf6","item_hash_version":3,"event_class":"maintenance","record_hash_version":1,"record_hash":"9bc39ce9068c7199acb6f3501c957dbf405ac5b9dd873f8855af61c5d5383064"} +{"hash_algorithm":"sha256","ts":"2026-10-04T17:04:02.903Z","author":"claude-orchestrator","author_source":"asserted","agent_harness":"claude-code","agent_model":"claude-opus-5-5","agent_model_source":"probe","agent_instance":"4b273145923a68729ab394ab","agent_provenance":{"model":{"value":"claude-opus-5-5","source":"probe"},"effort":{"value":"high","source":"environment"},"role":null,"topic":null,"version":{"value":"2.1.289","source":"probe"}},"op":"comment_add","patch":[{"op":"add","path":"/metadata/comments/7","value":{"created_at":"2026-10-04T17:04:02.903Z","author":"claude-orchestrator","text":"Orchestrator verification: the .tsx half was already fixed by #132 (437e424); this change extends both gates to .mts/.cts and excludes .d.mts/.d.cts. The pi agent stopped on a provider 429 before committing; I reviewed the diff and tests (real temp-dir sources, real jscpd 4 and 5 engines, no mocks) and ran npm run release:check: 469 pass, 0 fail, coverage 100/100/100/100, all release gates ok."}},{"op":"replace","path":"/metadata/updated_at","value":"2026-10-04T17:04:02.903Z"}],"before_hash":"19081aa1b0db2d2ccd48543e36b5a0379d95381017a278d98732633755f36bf6","after_hash":"82f198a4e2fdd21da5e8c3237de92bfe36ade24313e7510d56758df7afa162c5","item_hash_version":3,"context":{"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"claude_session_file","rule_version":"v1"},"version":{"status":"resolved","resolver":"claude_session_file","rule_version":"v1"}}},"event_class":"substantive","record_hash_version":1,"record_hash":"e47341ad90932e16c468fd78a8bd30e1183610d70735c267fae054ca728dd3d0"} +{"hash_algorithm":"sha256","ts":"2026-10-04T17:04:03.692Z","author":"claude-orchestrator","author_source":"asserted","agent_harness":"claude-code","agent_model":"claude-opus-5-5","agent_model_source":"probe","agent_instance":"4b273145923a68729ab394ab","agent_provenance":{"model":{"value":"claude-opus-5-5","source":"probe"},"effort":{"value":"high","source":"environment"},"role":{"value":"implementer","source":"argv"},"topic":null,"version":{"value":"2.1.289","source":"probe"}},"op":"update","patch":[{"op":"replace","path":"/metadata/updated_at","value":"2026-10-04T17:04:03.692Z"},{"op":"add","path":"/metadata/resolution","value":"completed"}],"before_hash":"82f198a4e2fdd21da5e8c3237de92bfe36ade24313e7510d56758df7afa162c5","after_hash":"1e6b2f6dd15c97ba733a856e97318f4a5a08769ceae93412b1a630c5a2139eb3","item_hash_version":3,"context":{"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"claude_session_file","rule_version":"v1"},"version":{"status":"resolved","resolver":"claude_session_file","rule_version":"v1"}}},"event_class":"maintenance","record_hash_version":1,"record_hash":"f16243fae3c079b58bd622414d476e2d8205464735a3811832395d51158c9156"} +{"hash_algorithm":"sha256","ts":"2026-10-04T17:04:04.880Z","author":"claude-orchestrator","author_source":"asserted","agent_harness":"claude-code","agent_model":"claude-opus-5-5","agent_model_source":"probe","agent_instance":"4b273145923a68729ab394ab","agent_provenance":{"model":{"value":"claude-opus-5-5","source":"probe"},"effort":{"value":"high","source":"environment"},"role":{"value":"implementer","source":"argv"},"topic":null,"version":{"value":"2.1.289","source":"probe"}},"op":"release","patch":[{"op":"remove","path":"/metadata/claim_principal"},{"op":"remove","path":"/metadata/assignee"},{"op":"replace","path":"/metadata/updated_at","value":"2026-10-04T17:04:04.880Z"}],"before_hash":"1e6b2f6dd15c97ba733a856e97318f4a5a08769ceae93412b1a630c5a2139eb3","after_hash":"d66974f74bcf34d46fe9bc96da88dfaee60ecc545e59f42d02ce29d695eacb7e","item_hash_version":3,"context":{"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"claude_session_file","rule_version":"v1"},"version":{"status":"resolved","resolver":"claude_session_file","rule_version":"v1"}}},"event_class":"maintenance","record_hash_version":1,"record_hash":"c0e94879007fdbaf8598fef99e7b16418136cfa86765c6af88b5d4b80c5e3d8d"} +{"hash_algorithm":"sha256","ts":"2026-10-04T17:04:31.181Z","author":"claude-orchestrator","author_source":"asserted","agent_harness":"claude-code","agent_model":"claude-opus-5-5","agent_model_source":"probe","agent_instance":"4b273145923a68729ab394ab","agent_provenance":{"model":{"value":"claude-opus-5-5","source":"probe"},"effort":{"value":"high","source":"environment"},"role":{"value":"implementer","source":"argv"},"topic":null,"version":{"value":"2.1.289","source":"probe"}},"op":"update","patch":[{"op":"replace","path":"/metadata/updated_at","value":"2026-10-04T17:04:31.181Z"},{"op":"add","path":"/metadata/repro_steps","value":"In a package using pm-ops gates, add src/x.mts with an undocumented export and a duplicated block, then run the docstring and duplication gates."},{"op":"add","path":"/metadata/expected_result","value":"Both gates report the .mts (and .cts) source: the docstring gate lists the undocumented export and the duplication gate reports the clone; .d.mts/.d.cts ambient declarations stay out of scope."}],"before_hash":"d66974f74bcf34d46fe9bc96da88dfaee60ecc545e59f42d02ce29d695eacb7e","after_hash":"54f865a765d226a1645cf160d9f546f70c785bf7b8ab3706635948fd3def8517","item_hash_version":3,"context":{"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"claude_session_file","rule_version":"v1"},"version":{"status":"resolved","resolver":"claude_session_file","rule_version":"v1"}}},"event_class":"maintenance","record_hash_version":1,"record_hash":"db22322e0e4a2924f4b008f1922aa9ea49d8f6726b46c440ae999bf12378b2df"} +{"hash_algorithm":"sha256","ts":"2026-10-04T17:04:31.746Z","author":"claude-orchestrator","author_source":"asserted","agent_harness":"claude-code","agent_model":"claude-opus-5-5","agent_model_source":"probe","agent_instance":"4b273145923a68729ab394ab","agent_provenance":{"model":{"value":"claude-opus-5-5","source":"probe"},"effort":{"value":"high","source":"environment"},"role":{"value":"implementer","source":"argv"},"topic":null,"version":{"value":"2.1.289","source":"probe"}},"op":"close","patch":[{"op":"replace","path":"/metadata/updated_at","value":"2026-10-04T17:04:31.746Z"},{"op":"replace","path":"/metadata/status","value":"closed"},{"op":"add","path":"/metadata/closed_at","value":"2026-10-04T17:04:31.716Z"},{"op":"add","path":"/metadata/completed_at","value":"2026-10-04T17:04:31.716Z"},{"op":"add","path":"/metadata/close_reason","value":"Both gates cover .ts/.tsx (#132) and now .mts/.cts with ambient .d.mts/.d.cts excluded; release:check 469 pass, 100% coverage."}],"before_hash":"54f865a765d226a1645cf160d9f546f70c785bf7b8ab3706635948fd3def8517","after_hash":"3c517fa5f813f96e9ba25adc86f7484476508a98bb38be5896808fe079da593d","item_hash_version":3,"context":{"workflow_policies":[{"policy_id":"completeness-issue","policy_fingerprint":"29451c1f80adfbacaeaa7936a6a7f69fe058f29da602f3dfbc941152e36a7130","rule":"require_fields","effect":"refuse","satisfied":true,"missing_fields":[],"remediation":"Supply the declared required fields before this lifecycle transition."},{"policy_id":"fleet-closed-resolution","policy_fingerprint":"e13f80d0b1fcef3c8ead9b5e9a32723dc589cc189ef68aa23badea68dace3a17","rule":"require_fields","effect":"refuse","satisfied":true,"missing_fields":[],"remediation":"Supply the declared required fields before this lifecycle transition."}],"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"claude_session_file","rule_version":"v1"},"version":{"status":"resolved","resolver":"claude_session_file","rule_version":"v1"}}},"event_class":"substantive","record_hash_version":1,"record_hash":"e6044f51d993b61015580d08f8901cc59069891546d07e86ac9a0703737d314d"} +{"hash_algorithm":"sha256","ts":"2026-10-04T17:04:32.380Z","author":"claude-orchestrator","author_source":"asserted","agent_harness":"claude-code","agent_model":"claude-opus-5-5","agent_model_source":"probe","agent_instance":"4b273145923a68729ab394ab","agent_provenance":{"model":{"value":"claude-opus-5-5","source":"probe"},"effort":{"value":"high","source":"environment"},"role":{"value":"implementer","source":"argv"},"topic":null,"version":{"value":"2.1.289","source":"probe"}},"op":"release","patch":[{"op":"replace","path":"/metadata/updated_at","value":"2026-10-04T17:04:32.380Z"}],"before_hash":"3c517fa5f813f96e9ba25adc86f7484476508a98bb38be5896808fe079da593d","after_hash":"de5a938042b0bd5b8453202447d05495ece0ffd482bc0de4f49abe3149c1d1ae","item_hash_version":3,"context":{"workflow_policies":[{"policy_id":"completeness-issue","policy_fingerprint":"29451c1f80adfbacaeaa7936a6a7f69fe058f29da602f3dfbc941152e36a7130","rule":"require_fields","effect":"refuse","satisfied":true,"missing_fields":[],"remediation":"Supply the declared required fields before this lifecycle transition."},{"policy_id":"fleet-closed-resolution","policy_fingerprint":"e13f80d0b1fcef3c8ead9b5e9a32723dc589cc189ef68aa23badea68dace3a17","rule":"require_fields","effect":"refuse","satisfied":true,"missing_fields":[],"remediation":"Supply the declared required fields before this lifecycle transition."}],"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"claude_session_file","rule_version":"v1"},"version":{"status":"resolved","resolver":"claude_session_file","rule_version":"v1"}}},"event_class":"maintenance","record_hash_version":1,"record_hash":"f2993c51db8448bffb9f054b539a116884df0b02ef227ac3b736fb9cf25197c2"} +{"hash_algorithm":"sha256","ts":"2026-10-04T17:56:34.835Z","author":"claude-orchestrator","author_source":"asserted","agent_harness":"claude-code","agent_model":"claude-opus-5-5","agent_model_source":"probe","agent_instance":"4b273145923a68729ab394ab","agent_provenance":{"model":{"value":"claude-opus-5-5","source":"probe"},"effort":{"value":"high","source":"environment"},"role":null,"topic":null,"version":{"value":"2.1.289","source":"probe"}},"op":"tests_remove","patch":[{"op":"remove","path":"/metadata/tests/2"},{"op":"replace","path":"/metadata/updated_at","value":"2026-10-04T17:56:34.835Z"}],"before_hash":"de5a938042b0bd5b8453202447d05495ece0ffd482bc0de4f49abe3149c1d1ae","after_hash":"b3afb8792b4812107ff588478abbc5d1ef201ddf6a737f8eeb0608b7773c9e14","item_hash_version":3,"context":{"workflow_policies":[{"policy_id":"completeness-issue","policy_fingerprint":"29451c1f80adfbacaeaa7936a6a7f69fe058f29da602f3dfbc941152e36a7130","rule":"require_fields","effect":"refuse","satisfied":true,"missing_fields":[],"remediation":"Supply the declared required fields before this lifecycle transition."},{"policy_id":"fleet-closed-resolution","policy_fingerprint":"e13f80d0b1fcef3c8ead9b5e9a32723dc589cc189ef68aa23badea68dace3a17","rule":"require_fields","effect":"refuse","satisfied":true,"missing_fields":[],"remediation":"Supply the declared required fields before this lifecycle transition."}],"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"claude_session_file","rule_version":"v1"},"version":{"status":"resolved","resolver":"claude_session_file","rule_version":"v1"}}},"event_class":"maintenance","record_hash_version":1,"record_hash":"0590508ca65d0e8a83773d1aee015bb4f0d7df74016c389aa82d94daff9ed14d"} +{"hash_algorithm":"sha256","ts":"2026-10-04T17:56:46.856Z","author":"claude-orchestrator","author_source":"asserted","agent_harness":"claude-code","agent_model":"claude-opus-5-5","agent_model_source":"probe","agent_instance":"4b273145923a68729ab394ab","agent_provenance":{"model":{"value":"claude-opus-5-5","source":"probe"},"effort":{"value":"high","source":"environment"},"role":{"value":"implementer","source":"argv"},"topic":null,"version":{"value":"2.1.289","source":"probe"}},"op":"update","patch":[{"op":"replace","path":"/metadata/updated_at","value":"2026-10-04T17:56:46.856Z"},{"op":"replace","path":"/metadata/title","value":"Cover .tsx, .mts and .cts sources in the docstring and duplication gates, excluding ambient .d.mts/.d.cts declarations"}],"before_hash":"b3afb8792b4812107ff588478abbc5d1ef201ddf6a737f8eeb0608b7773c9e14","after_hash":"4665654a4c2fe647b41eda7ca3c9bbe45d833ead771874689df1ea4f08e13780","item_hash_version":3,"context":{"workflow_policies":[{"policy_id":"completeness-issue","policy_fingerprint":"29451c1f80adfbacaeaa7936a6a7f69fe058f29da602f3dfbc941152e36a7130","rule":"require_fields","effect":"refuse","satisfied":true,"missing_fields":[],"remediation":"Supply the declared required fields before this lifecycle transition."},{"policy_id":"fleet-closed-resolution","policy_fingerprint":"e13f80d0b1fcef3c8ead9b5e9a32723dc589cc189ef68aa23badea68dace3a17","rule":"require_fields","effect":"refuse","satisfied":true,"missing_fields":[],"remediation":"Supply the declared required fields before this lifecycle transition."}],"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"claude_session_file","rule_version":"v1"},"version":{"status":"resolved","resolver":"claude_session_file","rule_version":"v1"}}},"event_class":"substantive","record_hash_version":1,"record_hash":"21ea5fc2db0c761f98eab33a3e94a2f495c654ecae93360ce52ac3350c3d938d"} +{"hash_algorithm":"sha256","ts":"2026-10-04T17:56:47.524Z","author":"claude-orchestrator","author_source":"asserted","agent_harness":"claude-code","agent_model":"claude-opus-5-5","agent_model_source":"probe","agent_instance":"4b273145923a68729ab394ab","agent_provenance":{"model":{"value":"claude-opus-5-5","source":"probe"},"effort":{"value":"high","source":"environment"},"role":null,"topic":null,"version":{"value":"2.1.289","source":"probe"}},"op":"comment_add","patch":[{"op":"add","path":"/metadata/comments/8","value":{"created_at":"2026-10-04T17:56:47.524Z","author":"claude-orchestrator","text":"Review (Greptile, PR #144): removed an accidental test entry whose command was --help (recorded by an agent running pm test with --add --help); retitled so the generated changelog names the .mts/.cts extensions and declaration exclusions this PR adds."}},{"op":"replace","path":"/metadata/updated_at","value":"2026-10-04T17:56:47.524Z"}],"before_hash":"4665654a4c2fe647b41eda7ca3c9bbe45d833ead771874689df1ea4f08e13780","after_hash":"97044c6d625039d89a0d81ce70c449abe8c912b54cc7b64b1fbd2d3c5fd93c28","item_hash_version":3,"context":{"workflow_policies":[{"policy_id":"completeness-issue","policy_fingerprint":"29451c1f80adfbacaeaa7936a6a7f69fe058f29da602f3dfbc941152e36a7130","rule":"require_fields","effect":"refuse","satisfied":true,"missing_fields":[],"remediation":"Supply the declared required fields before this lifecycle transition."},{"policy_id":"fleet-closed-resolution","policy_fingerprint":"e13f80d0b1fcef3c8ead9b5e9a32723dc589cc189ef68aa23badea68dace3a17","rule":"require_fields","effect":"refuse","satisfied":true,"missing_fields":[],"remediation":"Supply the declared required fields before this lifecycle transition."}],"agent_provenance_outcomes":{"model":{"status":"resolved","resolver":"claude_session_file","rule_version":"v1"},"version":{"status":"resolved","resolver":"claude_session_file","rule_version":"v1"}}},"event_class":"substantive","record_hash_version":1,"record_hash":"52be2586968d8542d39c719158ea331df84cd33dc156b6d71b3ff01934f29762"} diff --git a/.agents/pm/issues/ops-zq8c.toon b/.agents/pm/issues/ops-zq8c.toon index 11ac3cb..8ca0c3b 100644 --- a/.agents/pm/issues/ops-zq8c.toon +++ b/.agents/pm/issues/ops-zq8c.toon @@ -1,21 +1,30 @@ id: ops-zq8c -title: Include TSX in docstring and duplication gates with verified source counts +title: "Cover .tsx, .mts and .cts sources in the docstring and duplication gates, excluding ambient .d.mts/.d.cts declarations" description: "GitHub #128: pm-ops docstring and duplication gates silently omit TSX sources. Make both engines scan TSX, prove source-count completeness, and certify the exact package head." type: Issue -status: blocked +status: closed priority: 1 tags[4]: "area:quality",docstrings,duplication,tsx created_at: "2026-09-28T15:05:31.893Z" -updated_at: "2026-10-02T23:43:44.706Z" +updated_at: "2026-10-04T17:56:47.524Z" +closed_at: "2026-10-04T17:04:31.716Z" +completed_at: "2026-10-04T17:04:31.716Z" author: codex estimated_minutes: 180 acceptance_criteria: Directory and single-file docstring analysis find undocumented TSX exports; jscpd 4 and 5 detect TSX clones with the real engines; mismatched scan counts fail closed; release gate passes; companion records exact limitations. -comments[5]{created_at,author,text}: +repro_steps: "In a package using pm-ops gates, add src/x.mts with an undocumented export and a duplicated block, then run the docstring and duplication gates." +resolution: completed +expected_result: "Both gates report the .mts (and .cts) source: the docstring gate lists the undocumented export and the duplication gate reports the clone; .d.mts/.d.cts ambient declarations stay out of scope." +comments[9]{created_at,author,text}: "2026-10-02T18:27:05.767Z",pi-glm,"Rebase to current main (pi-glm, orchestrator land pass): PR #132 rebased onto origin/main 5ea8406 (releases 2026.9.28-1 and 2026.9.29 merged in cleanly, no conflicts). New head f3e66c3; same three commits. Full gate re-verified on the rebased head: npm run release:check passes (typecheck, lint, duplication, docstrings, coverage 100/100/100/100 across 23 sources, prod audit 0 findings, pack dry run, changelog:check, release-changelog-date, publish-attestation, lifecycle-policy), and pm health --strict-exit --json exits 0 with only stale-in-progress advisories. Re-review requested from CodeRabbit/Greptile/Gemini." "2026-10-02T21:01:14.692Z",pi-grok,"Cubic review 5395516638 on head b15bf93, land-pass disposition:\n\n4168776167 is valid. Note 3 began with a pasted author=codex,text= label. pm item notes --edit 3 stripped that prefix so the text starts at \"CodeRabbit review comment 4124694533\". The original note_add history line is kept; the edit is a new history event.\n\n4168776160 is refused. tokenize selects LanguageVariant.JSX only when the file identifier ends with .tsx, which is the same rule collectSourceFiles uses to admit sources. analyzeSource's file argument is that identifier, not a free-form module name. Inferring JSX from source text would treat TypeScript generics in .ts files as tags. A caller that passes TSX bytes under a non-.tsx name is outside the gate contract; the walker never does that.\n\n4168776178 is refused. A live jscpd 5.2.1 JSON report stores statistics.formats.typescript.sources and statistics.total.sources as counts, not file maps. Duplicate records name only files that participated in a clone. The one-token probe therefore cannot name a same-size substitution, and the function comment above analyzeWithBinary already states that the JSON report carries only aggregate source counts. jscpd 4 still fails closed with skippedSources file names." "2026-10-02T21:09:30.355Z",pi-grok,"Land-pass gate: the note-only head was included in the rebased pm-ops#134 tree, where npm run release:check exited 0 (455 pass, 0 fail, 2 default-suite real-data skips, c8 100/100/100/100 across 23 sources, changelog:check current). Local changelog:check on this branch also exited 0. pm health --strict-exit --require-merge-drivers exited 0." "2026-10-02T23:41:34.683Z",codex-sol-land,"Resumed PR #132 from 8ae094a066a542113f04dd4a9716205f106bd42c. Rebase onto current main yields 8ae094a066a542113f04dd4a9716205f106bd42c. All existing bot artifacts and restart-era owner replies inspected; no new actionable finding. Preserve earlier fixes and technical refusals. Verifying unchanged CI gates under the shared heavy lock; no merge, release or closure." "2026-10-02T23:43:43.564Z",codex-sol-land,"Resumed verification: npm ci, current-base rebase, fresh committed-dist comparison, strict local tracker health with required merge drivers, npm run release:check, and bun install --no-save all passed. Full gate: 454 tests, 452 pass, 2 skips; configured coverage thresholds unchanged. PM-linked test/lint-and-duplication-gates.test.ts passed. Earlier findings and technical refusals retained; no new source fix was needed in this restart. Exact pushed-head CI and substantive reviewer availability remain separate checks; no merge, release, publication or item closure." + "2026-10-04T16:34:34.922Z",pi-glm,"pi-glm restart on top of merged #132 (main d79c9bd): .ts/.tsx walking, --format typescript,tsx, per-format source sums, zero-files guards and their tests are already in main. Remaining delta for this task: .mts/.cts in the docstring walker (both the directory walk and the single-file path, excluding .d.mts/.d.cts), .mts/.cts in duplication matched-source scope + default globs + ignores, and failing-first tests proving undocumented .mts/.cts exports and duplicated .mts/.cts blocks are REFUSED while clean ones pass under default globs. Empirically verified both real engines (jscpd 4.3.0 and 5.4.0) already classify .mts/.cts under the typescript format, so --format stays typescript,tsx." + "2026-10-04T16:36:38.021Z",pi-glm,"TDD failing-first on main d79c9bd (before any source change): 'node --test --test-name-pattern mts test/docstrings.test.ts' — both new tests fail with 'docstring coverage: no TypeScript source files found ... (scanning zero files cannot pass vacuously)' because collectSourceFiles admits only .ts/.tsx; 'node --test --test-name-pattern \\.mts test/lint-and-duplication-gates.test.ts' — all three new tests fail: jscpd5 throws 'jscpd scanned 2 of 0 in-scope TypeScript sources at the one-token floor' for explicit mts/cts globs, and the default-glob clean and .d.mts/.d.cts cases exit 1 with 'no TypeScript sources were analyzed'. Five failing tests recorded; now fixing the source." + "2026-10-04T17:04:02.903Z",claude-orchestrator,"Orchestrator verification: the .tsx half was already fixed by #132 (437e424); this change extends both gates to .mts/.cts and excludes .d.mts/.d.cts. The pi agent stopped on a provider 429 before committing; I reviewed the diff and tests (real temp-dir sources, real jscpd 4 and 5 engines, no mocks) and ran npm run release:check: 469 pass, 0 fail, coverage 100/100/100/100, all release gates ok." + "2026-10-04T17:56:47.524Z",claude-orchestrator,"Review (Greptile, PR #144): removed an accidental test entry whose command was --help (recorded by an agent running pm test with --add --help); retitled so the generated changelog names the .mts/.cts extensions and declaration exclusions this PR adds." notes[3]: - created_at: "2026-09-28T15:05:31.893Z" author: codex @@ -51,7 +60,7 @@ tests[2]: created_at: "2026-10-02T23:41:36.955Z" source_kind: local_mutation source_ref: fix/pm-ops-tsx-quality-gates-2026-09-28 -docs[4]: +docs[5]: - path: "https://github.com/unbraind/pm-ops/issues/128" scope: global note: Source issue and reproduction @@ -61,6 +70,10 @@ docs[4]: - path: "https://github.com/unbraind/pm-ops/pull/132#discussion_r4123865252" scope: global note: CodeRabbit symlink scope finding + - path: "https://github.com/unbraind/pm-ops/issues/128" + scope: project + note: "Source issue: remaining .mts/.cts scope extension on top of merged #132" - path: "https://github.com/unbraind/pm-ops/pull/132" scope: project +close_reason: "Both gates cover .ts/.tsx (#132) and now .mts/.cts with ambient .d.mts/.d.cts excluded; release:check 469 pass, 100% coverage." body: "" diff --git a/CHANGELOG.md b/CHANGELOG.md index ed73440..4c49d42 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## Unreleased +### Fixed + +- Cover .tsx, .mts and .cts sources in the docstring and duplication gates, excluding ambient .d.mts/.d.cts declarations ([ops-zq8c](https://github.com/unbraind/pm-ops/blob/main/.agents/pm/issues/ops-zq8c.toon)) + ### Other - Auto-merge green Dependabot updates and group the pm toolchain into one daily PR ([ops-k1lf](https://github.com/unbraind/pm-ops/blob/main/.agents/pm/tasks/ops-k1lf.toon)) diff --git a/README.md b/README.md index 529c9d7..eb28110 100644 --- a/README.md +++ b/README.md @@ -343,12 +343,13 @@ process.exitCode = await runLintGate(); `runLintGate` uses the canonical policy, prints stylish diagnostics to stderr, and returns `0` or `1` for use as the process exit code. -The duplication export reads `package.json`, scans `**/*.{ts,tsx}` by default -(including root sources, `scripts/`, UI components, and tests), reports every +The duplication export reads `package.json`, scans `**/*.{ts,tsx,mts,cts}` by +default (including root sources, `scripts/`, UI components, and tests, while +skipping `.d.ts` / `.d.mts` / `.d.cts` ambient declarations), reports every clone pair with both file line ranges, and fails when the measured percentage -is above the configured threshold. Both jscpd 4 and 5 scan TS and TSX; the -jscpd 5 gate checks its source count with a one-token pass and refuses an -incomplete scan. `globs` and `minTokens` can be overridden for direct analysis; +is above the configured threshold. Both jscpd 4 and 5 scan TS, TSX, MTS, and +CTS sources; the jscpd 5 gate checks its source count with a one-token pass +and refuses an incomplete scan. `globs` and `minTokens` can be overridden for direct analysis; the gate uses `minTokens: 50` when the field is omitted. ### Consumers @@ -365,7 +366,7 @@ exports adds all five packages, using the version ranges shown in ```ts import { analyzeDuplication, runDuplicationGate } from "pm-ops/duplication"; -const report = await analyzeDuplication({ globs: ["src/**/*.{ts,tsx}", "test/**/*.{ts,tsx}"] }); +const report = await analyzeDuplication({ globs: ["src/**/*.{ts,tsx,mts,cts}", "test/**/*.{ts,tsx,mts,cts}"] }); await runDuplicationGate(); ``` diff --git a/dist/docstrings.d.ts b/dist/docstrings.d.ts index 3cffb0d..91062c4 100644 --- a/dist/docstrings.d.ts +++ b/dist/docstrings.d.ts @@ -75,7 +75,8 @@ * * ## Out of scope (structural, not configurable) * - * `.d.ts` ambient declarations, `test/`, `dist/`, and `node_modules` are skipped + * `.d.ts` / `.d.mts` / `.d.cts` ambient declarations, `test/`, `dist/`, and + * `node_modules` are skipped * by hard-coded directory rules; imports and re-export statements (`export { … } * from`, `export * from`) declare nothing; `export default `, * overload signatures, constructors, index signatures, computed-name members, @@ -114,7 +115,7 @@ export interface DocstringViolation { } /** Aggregate result of scanning one tree. */ export interface DocstringReport { - /** Number of `.ts` and `.tsx` files analyzed. */ + /** Number of authored TypeScript files (`.ts`, `.tsx`, `.mts`, `.cts`) analyzed. */ readonly files_scanned: number; /** Number of declarations evaluated against the rules. */ readonly declarations_checked: number; @@ -137,9 +138,10 @@ export interface SourceAnalysis { */ export declare function analyzeSource(text: string, file: string): SourceAnalysis; /** - * Walk a directory tree and analyze every authored `.ts` or `.tsx` source beneath it, - * skipping `.d.ts` files and the structural non-source directories. Scanning - * zero files fails by throwing rather than passing vacuously. + * Walk a directory tree and analyze every authored TypeScript source (`.ts`, + * `.tsx`, `.mts`, or `.cts`) beneath it, skipping the `.d.ts` / `.d.mts` / + * `.d.cts` ambient-declaration files and the structural non-source directories. + * Scanning zero files fails by throwing rather than passing vacuously. */ export declare function analyzeDocstringCoverage(options: { root: string; diff --git a/dist/docstrings.d.ts.map b/dist/docstrings.d.ts.map index 54c23b1..6f5d903 100644 --- a/dist/docstrings.d.ts.map +++ b/dist/docstrings.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"docstrings.d.ts","sourceRoot":"","sources":["../docstrings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqFG;AAOH;;;GAGG;AACH,eAAO,MAAM,aAAa,IAAI,CAAC;AAE/B;;;;GAIG;AACH,eAAO,MAAM,eAAe,IAAI,CAAC;AAEjC;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,iEAAiE;AACjE,MAAM,WAAW,kBAAkB;IACjC,sDAAsD;IACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,8DAA8D;IAC9D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,qDAAqD;IACrD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,6CAA6C;AAC7C,MAAM,WAAW,eAAe;IAC9B,iDAAiD;IACjD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,0DAA0D;IAC1D,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,wCAAwC;IACxC,QAAQ,CAAC,UAAU,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACpD;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,uCAAuC;IACvC,QAAQ,CAAC,UAAU,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACnD,gDAAgD;IAChD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAokCD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAKxE;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAAG,eAAe,CAoBnH"} \ No newline at end of file +{"version":3,"file":"docstrings.d.ts","sourceRoot":"","sources":["../docstrings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsFG;AAOH;;;GAGG;AACH,eAAO,MAAM,aAAa,IAAI,CAAC;AAE/B;;;;GAIG;AACH,eAAO,MAAM,eAAe,IAAI,CAAC;AAEjC;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,iEAAiE;AACjE,MAAM,WAAW,kBAAkB;IACjC,sDAAsD;IACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,8DAA8D;IAC9D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,qDAAqD;IACrD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,6CAA6C;AAC7C,MAAM,WAAW,eAAe;IAC9B,oFAAoF;IACpF,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,0DAA0D;IAC1D,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,wCAAwC;IACxC,QAAQ,CAAC,UAAU,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACpD;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,uCAAuC;IACvC,QAAQ,CAAC,UAAU,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACnD,gDAAgD;IAChD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAklCD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CAKxE;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAAG,eAAe,CAoBnH"} \ No newline at end of file diff --git a/dist/docstrings.js b/dist/docstrings.js index f0c6761..0009df0 100644 --- a/dist/docstrings.js +++ b/dist/docstrings.js @@ -75,7 +75,8 @@ * * ## Out of scope (structural, not configurable) * - * `.d.ts` ambient declarations, `test/`, `dist/`, and `node_modules` are skipped + * `.d.ts` / `.d.mts` / `.d.cts` ambient declarations, `test/`, `dist/`, and + * `node_modules` are skipped * by hard-coded directory rules; imports and re-export statements (`export { … } * from`, `export * from`) declare nothing; `export default `, * overload signatures, constructors, index signatures, computed-name members, @@ -348,9 +349,22 @@ function cleanComment(raw) { return text.replace(/\s+/g, " ").trim(); } /** - * Recursively collect every authored `.ts` or `.tsx` file (excluding `.d.ts`) beneath the - * given roots, skipping the structural non-source directories in - * {@link SKIP_DIRS}. A root may itself be a single file. + * Whether a file name identifies an authored TypeScript source: one of the + * `.ts`, `.tsx`, `.mts`, or `.cts` authored extensions, and not one of the + * `.d.ts`, `.d.mts`, or `.d.cts` ambient-declaration forms. Both the + * directory walk and the single-file root path share this predicate so their + * scopes cannot drift apart again — that drift is exactly how `.tsx` sources + * silently escaped this gate before. + */ +function isAuthoredTypeScriptSource(name) { + return (name.endsWith(".ts") || name.endsWith(".tsx") || name.endsWith(".mts") || name.endsWith(".cts")) + && !name.endsWith(".d.ts") && !name.endsWith(".d.mts") && !name.endsWith(".d.cts"); +} +/** + * Recursively collect every authored TypeScript file (`.ts`, `.tsx`, `.mts`, + * or `.cts`, excluding the `.d.ts` / `.d.mts` / `.d.cts` ambient-declaration + * forms) beneath the given roots, skipping the structural non-source + * directories in {@link SKIP_DIRS}. A root may itself be a single file. */ function collectSourceFiles(roots) { const out = []; @@ -373,7 +387,7 @@ function collectSourceFiles(roots) { if (!SKIP_DIRS.has(name)) walk(full); } - else if (info.isFile() && (name.endsWith(".ts") || name.endsWith(".tsx")) && !name.endsWith(".d.ts")) { + else if (info.isFile() && isAuthoredTypeScriptSource(name)) { out.push(full); } } @@ -391,7 +405,7 @@ function collectSourceFiles(roots) { if (info.isDirectory()) { walk(root); } - else if (info.isFile() && (root.endsWith(".ts") || root.endsWith(".tsx")) && !root.endsWith(".d.ts")) { + else if (info.isFile() && isAuthoredTypeScriptSource(root)) { out.push(root); } } @@ -1217,9 +1231,10 @@ export function analyzeSource(text, file) { return { violations: analyzer.violations, declarations: analyzer.declarationsChecked }; } /** - * Walk a directory tree and analyze every authored `.ts` or `.tsx` source beneath it, - * skipping `.d.ts` files and the structural non-source directories. Scanning - * zero files fails by throwing rather than passing vacuously. + * Walk a directory tree and analyze every authored TypeScript source (`.ts`, + * `.tsx`, `.mts`, or `.cts`) beneath it, skipping the `.d.ts` / `.d.mts` / + * `.d.cts` ambient-declaration files and the structural non-source directories. + * Scanning zero files fails by throwing rather than passing vacuously. */ export function analyzeDocstringCoverage(options) { const roots = options.sourceDirs && options.sourceDirs.length > 0 diff --git a/dist/docstrings.js.map b/dist/docstrings.js.map index 9eedc3f..4c8823f 100644 --- a/dist/docstrings.js.map +++ b/dist/docstrings.js.map @@ -1 +1 @@ -{"version":3,"file":"docstrings.js","sourceRoot":"","sources":["../docstrings.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"docstrings.js","sourceRoot":"","sources":["../docstrings.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/duplication.d.ts b/dist/duplication.d.ts index 876a787..9ce73f6 100644 --- a/dist/duplication.d.ts +++ b/dist/duplication.d.ts @@ -9,7 +9,10 @@ * - jscpd 5 replaced the Node.js API with a self-contained Rust binary, so * the analyzer runs the binary with its JSON reporter and parses the report. */ -/** Default TypeScript glob scanned by the duplication gate. */ +/** + * Default globs scanned by the duplication gate: every authored TypeScript + * source (`.ts`, `.tsx`, `.mts`, `.cts`) in the repository. + */ export declare const DEFAULT_DUPLICATION_GLOBS: readonly string[]; /** A clone pair with repository-relative file names and inclusive line ranges. */ export interface DuplicationClone { diff --git a/dist/duplication.d.ts.map b/dist/duplication.d.ts.map index 8a3aa03..8cef779 100644 --- a/dist/duplication.d.ts.map +++ b/dist/duplication.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"duplication.d.ts","sourceRoot":"","sources":["../duplication.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"duplication.d.ts","sourceRoot":"","sources":["../duplication.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/duplication.js b/dist/duplication.js index 46e120f..b2431ec 100644 --- a/dist/duplication.js +++ b/dist/duplication.js @@ -15,8 +15,11 @@ import { existsSync, mkdtempSync, readFileSync, rmSync } from "node:fs"; import { tmpdir } from "node:os"; import { dirname, join, relative, resolve, sep } from "node:path"; import { spawnSync } from "node:child_process"; -/** Default TypeScript glob scanned by the duplication gate. */ -export const DEFAULT_DUPLICATION_GLOBS = ["**/*.{ts,tsx}"]; +/** + * Default globs scanned by the duplication gate: every authored TypeScript + * source (`.ts`, `.tsx`, `.mts`, `.cts`) in the repository. + */ +export const DEFAULT_DUPLICATION_GLOBS = ["**/*.{ts,tsx,mts,cts}"]; const defaultRepoRoot = process.cwd(); const MAX_DUPLICATION_LINES = Number.MAX_SAFE_INTEGER; const MAX_DUPLICATION_SIZE = `${Number.MAX_SAFE_INTEGER}b`; @@ -28,6 +31,8 @@ const DUPLICATION_IGNORES = [ "**/.git/**", "**/.agents/pm/extensions/**", "**/*.d.ts", + "**/*.d.mts", + "**/*.d.cts", ]; const require = createRequire(import.meta.url); /** Return whether an unknown JSON value is a record with string keys. */ @@ -169,7 +174,13 @@ function globMatchedSources(repoRoot, pattern) { ignore: [...DUPLICATION_IGNORES], onlyFiles: true, }) - .filter((source) => (source.endsWith(".ts") || source.endsWith(".tsx")) && !source.endsWith(".d.ts")) + // The same authored-source scope as the docstring gate: `.ts`, `.tsx`, + // `.mts`, and `.cts` sources, minus the `.d.ts` / `.d.mts` / `.d.cts` + // ambient-declaration forms. Inlining this keeps the matched-source set — + // the basis of both engines' fail-closed count reconciliation — in one + // place next to the glob that produced it. + .filter((source) => (source.endsWith(".ts") || source.endsWith(".tsx") || source.endsWith(".mts") || source.endsWith(".cts")) + && !source.endsWith(".d.ts") && !source.endsWith(".d.mts") && !source.endsWith(".d.cts")) .map((source) => relativeSource(repoRoot, source)) .sort(); } diff --git a/dist/duplication.js.map b/dist/duplication.js.map index 62ff49b..04e8025 100644 --- a/dist/duplication.js.map +++ b/dist/duplication.js.map @@ -1 +1 @@ -{"version":3,"file":"duplication.js","sourceRoot":"","sources":["../duplication.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"duplication.js","sourceRoot":"","sources":["../duplication.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/docstrings.ts b/docstrings.ts index f02c8b9..51278be 100644 --- a/docstrings.ts +++ b/docstrings.ts @@ -75,7 +75,8 @@ * * ## Out of scope (structural, not configurable) * - * `.d.ts` ambient declarations, `test/`, `dist/`, and `node_modules` are skipped + * `.d.ts` / `.d.mts` / `.d.cts` ambient declarations, `test/`, `dist/`, and + * `node_modules` are skipped * by hard-coded directory rules; imports and re-export statements (`export { … } * from`, `export * from`) declare nothing; `export default `, * overload signatures, constructors, index signatures, computed-name members, @@ -124,7 +125,7 @@ export interface DocstringViolation { /** Aggregate result of scanning one tree. */ export interface DocstringReport { - /** Number of `.ts` and `.tsx` files analyzed. */ + /** Number of authored TypeScript files (`.ts`, `.tsx`, `.mts`, `.cts`) analyzed. */ readonly files_scanned: number; /** Number of declarations evaluated against the rules. */ readonly declarations_checked: number; @@ -399,9 +400,23 @@ function cleanComment(raw: string): string { } /** - * Recursively collect every authored `.ts` or `.tsx` file (excluding `.d.ts`) beneath the - * given roots, skipping the structural non-source directories in - * {@link SKIP_DIRS}. A root may itself be a single file. + * Whether a file name identifies an authored TypeScript source: one of the + * `.ts`, `.tsx`, `.mts`, or `.cts` authored extensions, and not one of the + * `.d.ts`, `.d.mts`, or `.d.cts` ambient-declaration forms. Both the + * directory walk and the single-file root path share this predicate so their + * scopes cannot drift apart again — that drift is exactly how `.tsx` sources + * silently escaped this gate before. + */ +function isAuthoredTypeScriptSource(name: string): boolean { + return (name.endsWith(".ts") || name.endsWith(".tsx") || name.endsWith(".mts") || name.endsWith(".cts")) + && !name.endsWith(".d.ts") && !name.endsWith(".d.mts") && !name.endsWith(".d.cts"); +} + +/** + * Recursively collect every authored TypeScript file (`.ts`, `.tsx`, `.mts`, + * or `.cts`, excluding the `.d.ts` / `.d.mts` / `.d.cts` ambient-declaration + * forms) beneath the given roots, skipping the structural non-source + * directories in {@link SKIP_DIRS}. A root may itself be a single file. */ function collectSourceFiles(roots: readonly string[]): string[] { const out: string[] = []; @@ -420,7 +435,7 @@ function collectSourceFiles(roots: readonly string[]): string[] { } if (info.isDirectory()) { if (!SKIP_DIRS.has(name)) walk(full); - } else if (info.isFile() && (name.endsWith(".ts") || name.endsWith(".tsx")) && !name.endsWith(".d.ts")) { + } else if (info.isFile() && isAuthoredTypeScriptSource(name)) { out.push(full); } } @@ -435,7 +450,7 @@ function collectSourceFiles(roots: readonly string[]): string[] { } if (info.isDirectory()) { walk(root); - } else if (info.isFile() && (root.endsWith(".ts") || root.endsWith(".tsx")) && !root.endsWith(".d.ts")) { + } else if (info.isFile() && isAuthoredTypeScriptSource(root)) { out.push(root); } } @@ -1245,9 +1260,10 @@ export function analyzeSource(text: string, file: string): SourceAnalysis { } /** - * Walk a directory tree and analyze every authored `.ts` or `.tsx` source beneath it, - * skipping `.d.ts` files and the structural non-source directories. Scanning - * zero files fails by throwing rather than passing vacuously. + * Walk a directory tree and analyze every authored TypeScript source (`.ts`, + * `.tsx`, `.mts`, or `.cts`) beneath it, skipping the `.d.ts` / `.d.mts` / + * `.d.cts` ambient-declaration files and the structural non-source directories. + * Scanning zero files fails by throwing rather than passing vacuously. */ export function analyzeDocstringCoverage(options: { root: string; sourceDirs?: readonly string[] }): DocstringReport { const roots = options.sourceDirs && options.sourceDirs.length > 0 diff --git a/duplication.ts b/duplication.ts index 11f16ef..26e36c0 100644 --- a/duplication.ts +++ b/duplication.ts @@ -17,8 +17,11 @@ import { tmpdir } from "node:os"; import { dirname, join, relative, resolve, sep } from "node:path"; import { spawnSync } from "node:child_process"; -/** Default TypeScript glob scanned by the duplication gate. */ -export const DEFAULT_DUPLICATION_GLOBS: readonly string[] = ["**/*.{ts,tsx}"]; +/** + * Default globs scanned by the duplication gate: every authored TypeScript + * source (`.ts`, `.tsx`, `.mts`, `.cts`) in the repository. + */ +export const DEFAULT_DUPLICATION_GLOBS: readonly string[] = ["**/*.{ts,tsx,mts,cts}"]; /** A clone pair with repository-relative file names and inclusive line ranges. */ export interface DuplicationClone { @@ -152,6 +155,8 @@ const DUPLICATION_IGNORES = [ "**/.git/**", "**/.agents/pm/extensions/**", "**/*.d.ts", + "**/*.d.mts", + "**/*.d.cts", ] as const; const require = createRequire(import.meta.url); @@ -308,7 +313,13 @@ function globMatchedSources(repoRoot: string, pattern: string): string[] { ignore: [...DUPLICATION_IGNORES], onlyFiles: true, }) - .filter((source) => (source.endsWith(".ts") || source.endsWith(".tsx")) && !source.endsWith(".d.ts")) + // The same authored-source scope as the docstring gate: `.ts`, `.tsx`, + // `.mts`, and `.cts` sources, minus the `.d.ts` / `.d.mts` / `.d.cts` + // ambient-declaration forms. Inlining this keeps the matched-source set — + // the basis of both engines' fail-closed count reconciliation — in one + // place next to the glob that produced it. + .filter((source) => (source.endsWith(".ts") || source.endsWith(".tsx") || source.endsWith(".mts") || source.endsWith(".cts")) + && !source.endsWith(".d.ts") && !source.endsWith(".d.mts") && !source.endsWith(".d.cts")) .map((source) => relativeSource(repoRoot, source)) .sort(); } diff --git a/test/docstrings.test.ts b/test/docstrings.test.ts index 3d2d4dc..8ff6156 100644 --- a/test/docstrings.test.ts +++ b/test/docstrings.test.ts @@ -514,6 +514,50 @@ test("directory and single-file scans include undocumented TSX exports", () => { } }); +test("directory and single-file scans include undocumented .mts and .cts exports", () => { + const root = mkdtempSync(join(tmpdir(), "docstrings-mts-cts-")); + try { + mkdirSync(join(root, "src")); + const module = join(root, "src", "module.mts"); + const common = join(root, "src", "common.cts"); + writeFileSync(module, "export function moduleThing() {}\nexport const HiddenModule = 1;\n"); + writeFileSync(common, "export function commonThing() {}\nexport const HiddenCommon = 1;\n"); + // Skipped: ambient declaration files carry no authored declarations. + writeFileSync(join(root, "src", "ambient.d.mts"), "declare function ambientModule(): void;\n"); + writeFileSync(join(root, "src", "ambient.d.cts"), "declare function ambientCommon(): void;\n"); + const directory = analyzeDocstringCoverage({ root }); + const singleModule = analyzeDocstringCoverage({ root, sourceDirs: ["src/module.mts"] }); + const singleCommon = analyzeDocstringCoverage({ root, sourceDirs: ["src/common.cts"] }); + assert.equal(directory.files_scanned, 2); + assert.equal(singleModule.files_scanned, 1); + assert.equal(singleCommon.files_scanned, 1); + // Files sort by path, so common.cts is analyzed before module.mts. + assert.deepEqual(directory.violations.map(({ symbol }) => symbol), [ + "commonThing", + "HiddenCommon", + "moduleThing", + "HiddenModule", + ]); + assert.deepEqual(singleModule.violations.map(({ symbol }) => symbol), ["moduleThing", "HiddenModule"]); + assert.deepEqual(singleCommon.violations.map(({ symbol }) => symbol), ["commonThing", "HiddenCommon"]); + } finally { + rmSync(root, { recursive: true, force: true }); + } +}); + +test("a clean .mts and .cts source passes with documented exports", () => { + const root = mkdtempSync(join(tmpdir(), "docstrings-mts-cts-clean-")); + try { + mkdirSync(join(root, "src")); + writeFileSync(join(root, "src", "clean.mts"), "/** Documented exported module helper. */\nexport function moduleThing() {}\n"); + writeFileSync(join(root, "src", "clean.cts"), "/** Documented exported common helper. */\nexport function commonThing() {}\n"); + const report = analyzeDocstringCoverage({ root }); + assert.deepEqual(report, { files_scanned: 2, declarations_checked: 2, violations: [] }); + } finally { + rmSync(root, { recursive: true, force: true }); + } +}); + test("JSX closing tags do not hide later undocumented TSX exports", () => { const source = "export const A =
; export const B = 1;\n"; assert.deepEqual(analyzeSource(source, "widget.tsx").violations.map(({ symbol }) => symbol), ["A", "B"]); diff --git a/test/lint-and-duplication-gates.test.ts b/test/lint-and-duplication-gates.test.ts index 7268d80..799f4fa 100644 --- a/test/lint-and-duplication-gates.test.ts +++ b/test/lint-and-duplication-gates.test.ts @@ -57,6 +57,23 @@ async function gateFailureOutput( return { logs: logs.join("\n"), errors: errors.join("\n") }; } +/** + * Run the duplication gate expecting success and return its collected logs. + * The injected exit boundary keeps a gate failure a catchable test error + * instead of the real process.exit(1) ending the whole suite. + */ +async function gatePassOutput(repoRoot: string): Promise { + const logs: string[] = []; + await runDuplicationGate({ + repoRoot, + log: (message) => logs.push(message), + exit: (code) => { + throw new GateExit(code); + }, + }); + return logs.join("\n"); +} + /** Create a package fixture with the requested duplication configuration. */ function packageFixture( name: string, @@ -334,6 +351,69 @@ test("both real jscpd engines include TSX clones in mixed TypeScript globs", asy } }); +test("both real jscpd engines include .mts and .cts clones in mixed TypeScript globs", async () => { + const globs = ["src/**/*.{ts,tsx,mts,cts}"]; + const source = [ + "export function repeatedModuleValue(): number {", + " const firstValue = 1;", + " const secondValue = 2;", + " const thirdValue = 3;", + " const fourthValue = 4;", + " const fifthValue = 5;", + " const sixthValue = 6;", + " const seventhValue = 7;", + " const eighthValue = 8;", + " return firstValue + secondValue + thirdValue + fourthValue + fifthValue + sixthValue + seventhValue + eighthValue;", + "}", + ].join("\n") + "\n"; + for (const [version, fixture] of [ + ["jscpd4", jscpd4Fixture("mts-cts-clones-v4", { threshold: 0, minTokens: 20 })], + ["jscpd5", packageFixture("mts-cts-clones-v5", { threshold: 0, minTokens: 20 })], + ] as const) { + writeFileSync(join(fixture, "src", "First.mts"), source); + writeFileSync(join(fixture, "src", "Second.cts"), source); + const report = await analyzeDuplication({ repoRoot: fixture, globs, minTokens: 20 }); + assert.deepEqual( + [report.clones[0]?.first.file, report.clones[0]?.second.file], + ["src/First.mts", "src/Second.cts"], + version, + ); + assert.equal(report.sources, 2, version); + assert.equal(report.cloneCount, 1, version); + assert.deepEqual(report.skippedSources, [], version); + const gate = await gateFailureOutput(fixture, { globs }); + assert.match(gate.errors, /exceeds the configured 0% threshold/, version); + } +}); + +test("both real jscpd engines scan clean .mts and .cts sources under the default globs", async () => { + for (const [version, fixture] of [ + ["jscpd4", jscpd4Fixture("mts-cts-clean-v4", { threshold: 0 })], + ["jscpd5", packageFixture("mts-cts-clean-v5", { threshold: 0 })], + ] as const) { + writeFileSync(join(fixture, "src", "clean.mts"), "export const cleanModuleValue = 1;\n"); + writeFileSync(join(fixture, "src", "clean.cts"), "export const cleanCommonValue = 2;\n"); + assert.match(await gatePassOutput(fixture), /2 source\(s\)/, version); + const report = await analyzeDuplication({ repoRoot: fixture, minTokens: 1 }); + assert.equal(report.sources, 2, version); + assert.equal(report.cloneCount, 0, version); + } +}); + +test("duplication scope excludes .d.mts and .d.cts ambient declarations under the default globs", async () => { + for (const [version, fixture] of [ + ["jscpd4", jscpd4Fixture("mts-cts-declarations-v4", { threshold: 0 })], + ["jscpd5", packageFixture("mts-cts-declarations-v5", { threshold: 0 })], + ] as const) { + writeFileSync(join(fixture, "src", "authored.mts"), "export const authoredModuleValue = 1;\n"); + writeFileSync(join(fixture, "src", "ambient.d.mts"), "declare function ambientModule(): void;\n"); + writeFileSync(join(fixture, "src", "ambient.d.cts"), "declare function ambientCommon(): void;\n"); + const report = await analyzeDuplication({ repoRoot: fixture, minTokens: 1 }); + assert.equal(report.sources, 1, version); + assert.match(await gatePassOutput(fixture), /1 source\(s\)/, version); + } +}); + test("jscpd 5 refuses a TSX file omitted even by the one-token source probe", async () => { const fixture = packageFixture("tsx-source-count-mismatch", { threshold: 0 }); writeFileSync(join(fixture, "src", "Empty.tsx"), "");