@indigoai-us/hq-cloud 6.14.37 → 6.14.40

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 (44) hide show
  1. package/dist/bin/sync-runner.test.js +44 -0
  2. package/dist/bin/sync-runner.test.js.map +1 -1
  3. package/dist/cli/reindex.d.ts.map +1 -1
  4. package/dist/cli/reindex.js +1 -9
  5. package/dist/cli/reindex.js.map +1 -1
  6. package/dist/cli/share.d.ts +13 -14
  7. package/dist/cli/share.d.ts.map +1 -1
  8. package/dist/cli/share.js +61 -16
  9. package/dist/cli/share.js.map +1 -1
  10. package/dist/cli/share.test.js +141 -0
  11. package/dist/cli/share.test.js.map +1 -1
  12. package/dist/cli/sync.d.ts +8 -5
  13. package/dist/cli/sync.d.ts.map +1 -1
  14. package/dist/cli/sync.js +68 -10
  15. package/dist/cli/sync.js.map +1 -1
  16. package/dist/cli/sync.test.js +154 -0
  17. package/dist/cli/sync.test.js.map +1 -1
  18. package/dist/lib/readlink-safe.d.ts +11 -0
  19. package/dist/lib/readlink-safe.d.ts.map +1 -0
  20. package/dist/lib/readlink-safe.js +27 -0
  21. package/dist/lib/readlink-safe.js.map +1 -0
  22. package/dist/lib/readlink-safe.test.d.ts +2 -0
  23. package/dist/lib/readlink-safe.test.d.ts.map +1 -0
  24. package/dist/lib/readlink-safe.test.js +34 -0
  25. package/dist/lib/readlink-safe.test.js.map +1 -0
  26. package/dist/skill-telemetry.d.ts +21 -5
  27. package/dist/skill-telemetry.d.ts.map +1 -1
  28. package/dist/skill-telemetry.js +238 -31
  29. package/dist/skill-telemetry.js.map +1 -1
  30. package/dist/skill-telemetry.test.js +235 -1
  31. package/dist/skill-telemetry.test.js.map +1 -1
  32. package/package.json +2 -2
  33. package/src/bin/sync-runner.test.ts +52 -0
  34. package/src/cli/reindex.ts +1 -9
  35. package/src/cli/share.test.ts +180 -0
  36. package/src/cli/share.ts +75 -30
  37. package/src/cli/sync.test.ts +167 -0
  38. package/src/cli/sync.ts +78 -15
  39. package/src/lib/readlink-safe.test.ts +43 -0
  40. package/src/lib/readlink-safe.ts +29 -0
  41. package/src/skill-telemetry.test.ts +286 -0
  42. package/src/skill-telemetry.ts +297 -31
  43. package/test/e2e/sync/skill-telemetry-oversized-transcript.test.ts +124 -0
  44. package/test/e2e/sync/windows-unreadable-link-leg.test.ts +191 -0
@@ -1683,6 +1683,50 @@ describe("per-company fanout", () => {
1683
1683
  // all-complete aggregate
1684
1684
  // ---------------------------------------------------------------------------
1685
1685
  describe("all-complete aggregate", () => {
1686
+ it("reports every unreadable-link fallback by path without turning the company leg into PARTIAL_SYNC_EXIT", async () => {
1687
+ const unreadablePaths = [
1688
+ "policies/scope-invalid-tombstone",
1689
+ "docs/conflict-convergence-probe",
1690
+ "skills/downloaded-link-hash",
1691
+ ];
1692
+ const deps = makeDeps({
1693
+ createVaultClient: () => makeVaultStub({
1694
+ memberships: [{ companyUid: "cmp_a" }],
1695
+ entityGet: (uid) => Promise.resolve({
1696
+ uid,
1697
+ type: "company",
1698
+ slug: "acme",
1699
+ bucketName: "hq-vault-acme-test",
1700
+ status: "active",
1701
+ }),
1702
+ }),
1703
+ share: vi.fn(async (options) => {
1704
+ for (const path of unreadablePaths) {
1705
+ options.onEvent?.({
1706
+ type: "not-shipped",
1707
+ reason: "unreadable-link",
1708
+ count: 1,
1709
+ samplePaths: [path],
1710
+ });
1711
+ }
1712
+ return defaultShareResult();
1713
+ }),
1714
+ });
1715
+ const code = await runRunner(["--companies", "--direction", "push"], deps);
1716
+ for (const path of unreadablePaths) {
1717
+ expect(deps.stdout.events()).toContainEqual({
1718
+ type: "not-shipped",
1719
+ company: "acme",
1720
+ reason: "unreadable-link",
1721
+ count: 1,
1722
+ samplePaths: [path],
1723
+ });
1724
+ }
1725
+ const all = deps.stdout.events().find((event) => event.type === "all-complete");
1726
+ expect(all?.errors).toEqual([]);
1727
+ expect(all?.partial).toBe(false);
1728
+ expect(code).toBe(0);
1729
+ });
1686
1730
  it("emits all-complete when telemetry never resolves", async () => {
1687
1731
  const deps = makeDeps({
1688
1732
  createVaultClient: () => makeVaultStub({