looply-cli 0.5.28 → 0.5.30

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 (82) hide show
  1. package/dist/.src-hash +1 -1
  2. package/dist/account-connect.d.ts.map +1 -1
  3. package/dist/account-connect.js +10 -2
  4. package/dist/account-connect.js.map +1 -1
  5. package/dist/bin.d.ts.map +1 -1
  6. package/dist/bin.js +5 -3
  7. package/dist/bin.js.map +1 -1
  8. package/dist/branch-delivery-wiring.d.ts.map +1 -1
  9. package/dist/branch-delivery-wiring.js +2 -0
  10. package/dist/branch-delivery-wiring.js.map +1 -1
  11. package/dist/branch-delivery.d.ts +43 -0
  12. package/dist/branch-delivery.d.ts.map +1 -1
  13. package/dist/branch-delivery.js +106 -3
  14. package/dist/branch-delivery.js.map +1 -1
  15. package/dist/config.d.ts +5 -0
  16. package/dist/config.d.ts.map +1 -1
  17. package/dist/config.js +1 -0
  18. package/dist/config.js.map +1 -1
  19. package/dist/connect-node.d.ts.map +1 -1
  20. package/dist/connect-node.js +23 -1
  21. package/dist/connect-node.js.map +1 -1
  22. package/dist/connect.d.ts +2 -0
  23. package/dist/connect.d.ts.map +1 -1
  24. package/dist/connect.js +13 -5
  25. package/dist/connect.js.map +1 -1
  26. package/dist/daemon-cmd.d.ts +3 -0
  27. package/dist/daemon-cmd.d.ts.map +1 -1
  28. package/dist/daemon-cmd.js +5 -1
  29. package/dist/daemon-cmd.js.map +1 -1
  30. package/dist/effective-gates.d.ts +58 -0
  31. package/dist/effective-gates.d.ts.map +1 -0
  32. package/dist/effective-gates.js +153 -0
  33. package/dist/effective-gates.js.map +1 -0
  34. package/dist/environment-hold.d.ts.map +1 -1
  35. package/dist/environment-hold.js +10 -0
  36. package/dist/environment-hold.js.map +1 -1
  37. package/dist/feature-report.d.ts +10 -3
  38. package/dist/feature-report.d.ts.map +1 -1
  39. package/dist/feature-report.js +44 -1
  40. package/dist/feature-report.js.map +1 -1
  41. package/dist/gate-draft.d.ts +16 -0
  42. package/dist/gate-draft.d.ts.map +1 -1
  43. package/dist/gate-draft.js +86 -4
  44. package/dist/gate-draft.js.map +1 -1
  45. package/dist/gate-health.d.ts +157 -0
  46. package/dist/gate-health.d.ts.map +1 -0
  47. package/dist/gate-health.js +432 -0
  48. package/dist/gate-health.js.map +1 -0
  49. package/dist/github-api.d.ts +2 -0
  50. package/dist/github-api.d.ts.map +1 -1
  51. package/dist/github-api.js +1 -0
  52. package/dist/github-api.js.map +1 -1
  53. package/dist/init-detect.d.ts +2 -0
  54. package/dist/init-detect.d.ts.map +1 -1
  55. package/dist/init-detect.js +4 -0
  56. package/dist/init-detect.js.map +1 -1
  57. package/dist/integration-deps.d.ts.map +1 -1
  58. package/dist/integration-deps.js +17 -6
  59. package/dist/integration-deps.js.map +1 -1
  60. package/dist/pair-cmd.d.ts +13 -1
  61. package/dist/pair-cmd.d.ts.map +1 -1
  62. package/dist/pair-cmd.js +30 -13
  63. package/dist/pair-cmd.js.map +1 -1
  64. package/dist/provider-cmd.d.ts +5 -0
  65. package/dist/provider-cmd.d.ts.map +1 -1
  66. package/dist/provider-cmd.js +21 -1
  67. package/dist/provider-cmd.js.map +1 -1
  68. package/dist/provider-ready.js +1 -1
  69. package/dist/provider-ready.js.map +1 -1
  70. package/dist/run-cmd.d.ts.map +1 -1
  71. package/dist/run-cmd.js +104 -7
  72. package/dist/run-cmd.js.map +1 -1
  73. package/dist/setup.d.ts.map +1 -1
  74. package/dist/setup.js +5 -1
  75. package/dist/setup.js.map +1 -1
  76. package/dist/workspace-provisioner.d.ts +8 -0
  77. package/dist/workspace-provisioner.d.ts.map +1 -1
  78. package/dist/workspace-provisioner.js +9 -1
  79. package/dist/workspace-provisioner.js.map +1 -1
  80. package/package.json +2 -2
  81. package/win/acl-canonical.ps1 +34 -0
  82. package/win/appcontainer.ps1 +7 -0
@@ -2,11 +2,16 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ProvisionBackoff = void 0;
4
4
  exports.nodeWorkspaceProvisioner = nodeWorkspaceProvisioner;
5
+ exports.declaredCarry = declaredCarry;
5
6
  exports.provisionOnce = provisionOnce;
6
7
  const node_os_1 = require("node:os");
7
8
  const node_path_1 = require("node:path");
8
9
  const node_fs_1 = require("node:fs");
9
10
  const config_1 = require("./config");
11
+ const effective_gates_1 = require("./effective-gates");
12
+ const feature_settings_cache_1 = require("./feature-settings-cache");
13
+ const gate_health_1 = require("./gate-health");
14
+ const repo_init_1 = require("./repo-init");
10
15
  const git_driver_1 = require("./git-driver");
11
16
  const reaper_1 = require("./reaper");
12
17
  const workspace_1 = require("./workspace");
@@ -66,7 +71,10 @@ function declaredCarry(cwd) {
66
71
  const file = (0, node_path_1.join)(cwd, git_driver_1.STATE_DIR, 'config.yaml');
67
72
  if (!(0, node_fs_1.existsSync)(file))
68
73
  return [];
69
- return (0, config_1.parseConfig)((0, node_fs_1.readFileSync)(file, 'utf8')).run.carryIntoCheckouts ?? [];
74
+ const declared = (0, config_1.parseConfig)((0, node_fs_1.readFileSync)(file, 'utf8')).run.carryIntoCheckouts ?? [];
75
+ // AutoRyn's carried folders, and the sub-apps a root test runner reaches (`effective-gates.ts`).
76
+ const withRemote = [...declared, ...((0, feature_settings_cache_1.remoteFeaturesFor)(cwd)?.gates?.carry ?? []).filter((c) => !declared.includes(c))];
77
+ return (0, effective_gates_1.effectiveCarry)({ ...(0, gate_health_1.projectFs)(cwd), listDirs: (p) => (0, repo_init_1.listDirsOf)((0, node_path_1.join)(cwd, p)) }, withRemote).carry;
70
78
  }
71
79
  /**
72
80
  * 🔴 A PROVISIONING THAT FAILS IS NOT TRIED AGAIN NEXT CADENCE — IT WAS, AND IT
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-provisioner.js","sourceRoot":"","sources":["../src/workspace-provisioner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace-provisioner.js","sourceRoot":"","sources":["../src/workspace-provisioner.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "looply-cli",
3
- "version": "0.5.28",
3
+ "version": "0.5.30",
4
4
  "description": "Leave your coding agent running. looply picks the work, holds the rails, and proves every change before it is kept.",
5
5
  "license": "MIT",
6
6
  "bin": {
@@ -32,7 +32,7 @@
32
32
  "prepublishOnly": "npm run build"
33
33
  },
34
34
  "dependencies": {
35
- "@looply/core": "0.5.28",
35
+ "@looply/core": "0.5.30",
36
36
  "pdfjs-dist": "5.6.205",
37
37
  "qrcode-terminal": "^0.12.0",
38
38
  "yaml": "^2.5.1"
@@ -0,0 +1,34 @@
1
+ # Put an access-control list back in Windows' canonical order, keeping every entry.
2
+ #
3
+ # WHY (2026-10-21, the owner's PC): a deny for one local account was set high up the tree
4
+ # (C:\Users\<you>, D:\) and inherited below an allow for Users. Inherited entries are allowed in
5
+ # that order. But protecting a path stops inheritance and copies them down as EXPLICIT entries,
6
+ # and an explicit allow ahead of an explicit deny is "not in canonical form": .NET then refuses
7
+ # every change ("This access control list is not in canonical form and therefore cannot be
8
+ # modified"). Every contained gate on that PC failed at `protect`, in every repository.
9
+ #
10
+ # Canonical order is: explicit deny, explicit allow, then the inherited entries as they were.
11
+ # Explicit entries keep their relative order within each group. Nothing is added or removed:
12
+ # the same entries, in the order Windows itself writes them.
13
+ function ConvertTo-CanonicalAcl($acl) {
14
+ if ($acl.AreAccessRulesCanonical) { return $false }
15
+ $raw = New-Object System.Security.AccessControl.RawSecurityDescriptor($acl.GetSecurityDescriptorSddlForm('Access'))
16
+ $aces = @($raw.DiscretionaryAcl)
17
+ # 0x10 is AceFlags.Inherited. Plain integers: PowerShell 5.1 cannot -band these flag enums here.
18
+ $rank = @()
19
+ foreach ($a in $aces) {
20
+ if (([int]$a.AceFlags -band 0x10) -ne 0) { $rank += 2 }
21
+ elseif ($a -is [System.Security.AccessControl.QualifiedAce] -and [string]$a.AceQualifier -eq 'AccessDenied') { $rank += 0 }
22
+ else { $rank += 1 }
23
+ }
24
+ $sorted = New-Object System.Security.AccessControl.RawAcl($raw.DiscretionaryAcl.Revision, $aces.Count)
25
+ $i = 0
26
+ foreach ($b in 0, 1, 2) {
27
+ for ($k = 0; $k -lt $aces.Count; $k++) {
28
+ if ($rank[$k] -eq $b) { $sorted.InsertAce($i, $aces[$k]); $i++ }
29
+ }
30
+ }
31
+ $raw.DiscretionaryAcl = $sorted
32
+ $acl.SetSecurityDescriptorSddlForm($raw.GetSddlForm('Access'), 'Access')
33
+ return $true
34
+ }
@@ -28,6 +28,7 @@
28
28
  param()
29
29
 
30
30
  $ErrorActionPreference = 'Stop'
31
+ . (Join-Path $PSScriptRoot 'acl-canonical.ps1')
31
32
 
32
33
  function Write-Result($obj) {
33
34
  # One line, one object. The caller parses stdout as a single document.
@@ -482,6 +483,12 @@ try {
482
483
  $di.SetAccessControl($acl)
483
484
 
484
485
  $acl = $di.GetAccessControl($ACCESS_ONLY)
486
+ # A deny inherited below an allow comes down out of canonical order, and .NET then refuses
487
+ # every change to it (see acl-canonical.ps1). Same entries, Windows' own order.
488
+ if (ConvertTo-CanonicalAcl $acl) {
489
+ $di.SetAccessControl($acl)
490
+ $acl = $di.GetAccessControl($ACCESS_ONLY)
491
+ }
485
492
  # Purge by IDENTITY, not by rule: RemoveAccessRule matches rights and
486
493
  # inheritance flags too, so an entry differing in any of them survives.
487
494
  $acl.PurgeAccessRules($sidObj)