@codyswann/lisa 3.51.4 → 3.51.5
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/all/copy-overwrite/scripts/lisa-hooks/block-direct-issue-create.sh +16 -6
- package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
- package/dist/core/lisa-owned-hash-ledger.js +1 -0
- package/dist/core/lisa-owned-hash-ledger.js.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +2 -2
- package/dist/opencode/plugin-templates/lisa-block-direct-issue-create.ts +9 -3
- package/package.json +1 -1
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa/hooks/block-direct-issue-create.sh +16 -6
- package/plugins/lisa-agy/hooks/block-direct-issue-create.sh +16 -6
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-agy/plugin.json +1 -1
- package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/hooks/block-direct-issue-create.sh +16 -6
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/hooks/block-direct-issue-create.sh +16 -6
- package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-agy/plugin.json +1 -1
- package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-agy/plugin.json +1 -1
- package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-agy/plugin.json +1 -1
- package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-agy/plugin.json +1 -1
- package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-agy/plugin.json +1 -1
- package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-agy/plugin.json +1 -1
- package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-agy/plugin.json +1 -1
- package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/src/base/hooks/block-direct-issue-create.sh +16 -6
|
@@ -796,11 +796,17 @@ def normalise_repo(value):
|
|
|
796
796
|
token would call the same repository two different places depending on how
|
|
797
797
|
it was typed.
|
|
798
798
|
|
|
799
|
+
Casing is PRESERVED here and folded only at the point of comparison. The
|
|
800
|
+
refusal names this string back to an operator, and echoing
|
|
801
|
+
`codyswanngt/lisa` at someone who typed `CodySwannGT/lisa` reads as a
|
|
802
|
+
different repository — a message that has to be squinted at is the thing
|
|
803
|
+
this change is repairing.
|
|
804
|
+
|
|
799
805
|
Args:
|
|
800
806
|
value: The raw token.
|
|
801
807
|
|
|
802
808
|
Returns:
|
|
803
|
-
|
|
809
|
+
An as-typed `owner/name`, or None when the token names no repository.
|
|
804
810
|
"""
|
|
805
811
|
text = value.strip().strip("'\"")
|
|
806
812
|
if text.endswith(".git"):
|
|
@@ -808,7 +814,7 @@ def normalise_repo(value):
|
|
|
808
814
|
parts = [part for part in text.split("/") if part and not part.endswith(":")]
|
|
809
815
|
if len(parts) < 2:
|
|
810
816
|
return None
|
|
811
|
-
return
|
|
817
|
+
return "%s/%s" % (parts[-2], parts[-1])
|
|
812
818
|
|
|
813
819
|
|
|
814
820
|
def target_repository(args):
|
|
@@ -857,15 +863,19 @@ def roles_for(target):
|
|
|
857
863
|
permissive about which token, never about whether one is required.
|
|
858
864
|
|
|
859
865
|
Args:
|
|
860
|
-
target: The addressed repository, or None.
|
|
866
|
+
target: The addressed repository as typed, or None.
|
|
861
867
|
|
|
862
868
|
Returns:
|
|
863
869
|
A (roles, cross_repo_target) pair. The target is None when the calling
|
|
864
|
-
project is the one being written to.
|
|
870
|
+
project is the one being written to. When set it is the as-typed
|
|
871
|
+
spelling, because the refusal names it back to an operator.
|
|
865
872
|
"""
|
|
866
|
-
|
|
873
|
+
# GitHub is case-insensitive about owner and name, so the comparison folds
|
|
874
|
+
# case while the reported string keeps the operator's own spelling.
|
|
875
|
+
folded = target.lower() if target is not None else None
|
|
876
|
+
if folded is None or (own_repo and folded == own_repo):
|
|
867
877
|
return [ready_role], None
|
|
868
|
-
if upstream_repo and
|
|
878
|
+
if upstream_repo and folded == upstream_repo:
|
|
869
879
|
role = upstream_ready_role
|
|
870
880
|
else:
|
|
871
881
|
# Another repository Lisa has no configuration for. Its lane is
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lisa-owned-hash-ledger.d.ts","sourceRoot":"","sources":["../../src/core/lisa-owned-hash-ledger.ts"],"names":[],"mappings":"AACA,6EAA6E;AAE7E;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAC3C,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"lisa-owned-hash-ledger.d.ts","sourceRoot":"","sources":["../../src/core/lisa-owned-hash-ledger.ts"],"names":[],"mappings":"AACA,6EAA6E;AAE7E;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAC3C,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAmdjC,CAAC"}
|
|
@@ -288,6 +288,7 @@ export const LISA_OWNED_HASH_LEDGER = Object.freeze({
|
|
|
288
288
|
]),
|
|
289
289
|
"scripts/lisa-hooks/block-direct-issue-create.sh": Object.freeze([
|
|
290
290
|
"014510942610f36b17f006dee4b96c7737abad3e3acc4f5b416ab6d52403c793",
|
|
291
|
+
"17c442bf60259d8183c7359bc54f992e8b7f305798704af1ed33f3e22e1a6006",
|
|
291
292
|
"22184f1dd1b96e818741bd4ae659446299535d7ce594817155edebac4172a7ba",
|
|
292
293
|
"60a4f94ec671b2372f7492680ab327d97aff686588ce85791f54e0fbd098b0ca",
|
|
293
294
|
"63c2f9b54ea30997905bc6e17709dd1300436204ac82ad16717d7cc215af262b",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lisa-owned-hash-ledger.js","sourceRoot":"","sources":["../../src/core/lisa-owned-hash-ledger.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lisa-owned-hash-ledger.js","sourceRoot":"","sources":["../../src/core/lisa-owned-hash-ledger.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
13
13
|
"all/copy-overwrite/scripts/lisa-environment-prepare.mjs": "f936bc8a038a7901ade1ba58cc52e5f5a8b8b2a52a9f0c1516567cc80eb02ccb",
|
|
14
14
|
"all/copy-overwrite/scripts/lisa-floor-collisions.mjs": "16f609ebf97f4f52e462ed97a774c2b56a33a99865cc11a5c069fbbbb45b007c",
|
|
15
15
|
"all/copy-overwrite/scripts/lisa-gates.mjs": "96077d0bbcf53ccc6b1baadef319cb9fa9979413bcff418ecea5abd136ff3491",
|
|
16
|
-
"all/copy-overwrite/scripts/lisa-hooks/block-direct-issue-create.sh": "
|
|
16
|
+
"all/copy-overwrite/scripts/lisa-hooks/block-direct-issue-create.sh": "17c442bf60259d8183c7359bc54f992e8b7f305798704af1ed33f3e22e1a6006",
|
|
17
17
|
"all/copy-overwrite/scripts/lisa-hooks/block-instruction-file-edits.sh": "3e709e1ec8a5843c00684bc477ad32ddab2c5fdb11f71d5aeec0c49609eaf025",
|
|
18
18
|
"all/copy-overwrite/scripts/lisa-hooks/block-managed-file-edits.sh": "d3ef2562b718156912f0877f8a0668026f5966fcca43eb9e064aa57a4e9a4976",
|
|
19
19
|
"all/copy-overwrite/scripts/lisa-hooks/block-no-verify.sh": "83a8b8108654086afb6a6f23a8f09f9f041eb2cd4094c5531fa7ab1f75e873dc",
|
|
@@ -343,7 +343,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
343
343
|
"plugins/src/base/commands/verify.md": "ffbc553ec86e77845da72b5b0eb0dbb2b5a93b781ac8a7dbb2ef0f31f38f7b96",
|
|
344
344
|
"plugins/src/base/commands/wiki/install.md": "51392cf053c17edd549bfbaba5d19ce669dc79021aafa7cfa100324ad38de11f",
|
|
345
345
|
"plugins/src/base/hooks/block-direct-issue-create.agy.sh": "2adaf15910b6d00e69c202d263d407a21b31c0afce0039c6c042e51c278d2325",
|
|
346
|
-
"plugins/src/base/hooks/block-direct-issue-create.sh": "
|
|
346
|
+
"plugins/src/base/hooks/block-direct-issue-create.sh": "ccf9594392c6450afac82052f26803d405c939c9044e34f7248ca253a42570e7",
|
|
347
347
|
"plugins/src/base/hooks/block-instruction-file-edits.agy.sh": "aa249cae53caeb3e0fb6d6af114e2756084f45a2896332fb063a9f20e4902125",
|
|
348
348
|
"plugins/src/base/hooks/block-instruction-file-edits.sh": "d47314b66d6ce85f77d6e058f861eede4462b2b0a33d54e82ff1c931167ec3f7",
|
|
349
349
|
"plugins/src/base/hooks/block-managed-file-edits.sh": "9b566bd1ff465147955300ce66b75c866db461a04dc67866c22bb928c757a616",
|
|
@@ -198,7 +198,10 @@ const LisaBlockDirectIssueCreate = async () => {
|
|
|
198
198
|
const text = value.replace(/\.git$/, "");
|
|
199
199
|
const parts = text.split("/").filter(part => part && !part.endsWith(":"));
|
|
200
200
|
if (parts.length < 2) return undefined;
|
|
201
|
-
|
|
201
|
+
// Casing preserved; folded only where it is compared. The refusal names
|
|
202
|
+
// this back to an operator, and echoing a lowercased slug at someone who
|
|
203
|
+
// typed the canonical spelling reads as a different repository.
|
|
204
|
+
return `${parts.at(-2)}/${parts.at(-1)}`;
|
|
202
205
|
};
|
|
203
206
|
|
|
204
207
|
/**
|
|
@@ -233,10 +236,13 @@ const LisaBlockDirectIssueCreate = async () => {
|
|
|
233
236
|
resolved: FilingPolicy,
|
|
234
237
|
target: string | undefined
|
|
235
238
|
): Verdict => {
|
|
236
|
-
|
|
239
|
+
// GitHub is case-insensitive about owner and name, so the comparison folds
|
|
240
|
+
// case while the reported string keeps the operator's own spelling.
|
|
241
|
+
const folded = target?.toLowerCase();
|
|
242
|
+
if (folded === undefined || folded === resolved.ownRepo)
|
|
237
243
|
return { roles: [resolved.readyRole], named: undefined };
|
|
238
244
|
const role =
|
|
239
|
-
|
|
245
|
+
folded === resolved.upstreamRepo
|
|
240
246
|
? resolved.upstreamReadyRole
|
|
241
247
|
: DEFAULT_READY_ROLE;
|
|
242
248
|
if (resolved.ownRepo !== undefined || !resolved.callerIsGithub)
|
package/package.json
CHANGED
|
@@ -141,7 +141,7 @@
|
|
|
141
141
|
"zod-validation-error": "^4.0.0"
|
|
142
142
|
},
|
|
143
143
|
"name": "@codyswann/lisa",
|
|
144
|
-
"version": "3.51.
|
|
144
|
+
"version": "3.51.5",
|
|
145
145
|
"description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
|
|
146
146
|
"main": "dist/index.js",
|
|
147
147
|
"exports": {
|
|
@@ -793,11 +793,17 @@ def normalise_repo(value):
|
|
|
793
793
|
token would call the same repository two different places depending on how
|
|
794
794
|
it was typed.
|
|
795
795
|
|
|
796
|
+
Casing is PRESERVED here and folded only at the point of comparison. The
|
|
797
|
+
refusal names this string back to an operator, and echoing
|
|
798
|
+
`codyswanngt/lisa` at someone who typed `CodySwannGT/lisa` reads as a
|
|
799
|
+
different repository — a message that has to be squinted at is the thing
|
|
800
|
+
this change is repairing.
|
|
801
|
+
|
|
796
802
|
Args:
|
|
797
803
|
value: The raw token.
|
|
798
804
|
|
|
799
805
|
Returns:
|
|
800
|
-
|
|
806
|
+
An as-typed `owner/name`, or None when the token names no repository.
|
|
801
807
|
"""
|
|
802
808
|
text = value.strip().strip("'\"")
|
|
803
809
|
if text.endswith(".git"):
|
|
@@ -805,7 +811,7 @@ def normalise_repo(value):
|
|
|
805
811
|
parts = [part for part in text.split("/") if part and not part.endswith(":")]
|
|
806
812
|
if len(parts) < 2:
|
|
807
813
|
return None
|
|
808
|
-
return
|
|
814
|
+
return "%s/%s" % (parts[-2], parts[-1])
|
|
809
815
|
|
|
810
816
|
|
|
811
817
|
def target_repository(args):
|
|
@@ -854,15 +860,19 @@ def roles_for(target):
|
|
|
854
860
|
permissive about which token, never about whether one is required.
|
|
855
861
|
|
|
856
862
|
Args:
|
|
857
|
-
target: The addressed repository, or None.
|
|
863
|
+
target: The addressed repository as typed, or None.
|
|
858
864
|
|
|
859
865
|
Returns:
|
|
860
866
|
A (roles, cross_repo_target) pair. The target is None when the calling
|
|
861
|
-
project is the one being written to.
|
|
867
|
+
project is the one being written to. When set it is the as-typed
|
|
868
|
+
spelling, because the refusal names it back to an operator.
|
|
862
869
|
"""
|
|
863
|
-
|
|
870
|
+
# GitHub is case-insensitive about owner and name, so the comparison folds
|
|
871
|
+
# case while the reported string keeps the operator's own spelling.
|
|
872
|
+
folded = target.lower() if target is not None else None
|
|
873
|
+
if folded is None or (own_repo and folded == own_repo):
|
|
864
874
|
return [ready_role], None
|
|
865
|
-
if upstream_repo and
|
|
875
|
+
if upstream_repo and folded == upstream_repo:
|
|
866
876
|
role = upstream_ready_role
|
|
867
877
|
else:
|
|
868
878
|
# Another repository Lisa has no configuration for. Its lane is
|
|
@@ -793,11 +793,17 @@ def normalise_repo(value):
|
|
|
793
793
|
token would call the same repository two different places depending on how
|
|
794
794
|
it was typed.
|
|
795
795
|
|
|
796
|
+
Casing is PRESERVED here and folded only at the point of comparison. The
|
|
797
|
+
refusal names this string back to an operator, and echoing
|
|
798
|
+
`codyswanngt/lisa` at someone who typed `CodySwannGT/lisa` reads as a
|
|
799
|
+
different repository — a message that has to be squinted at is the thing
|
|
800
|
+
this change is repairing.
|
|
801
|
+
|
|
796
802
|
Args:
|
|
797
803
|
value: The raw token.
|
|
798
804
|
|
|
799
805
|
Returns:
|
|
800
|
-
|
|
806
|
+
An as-typed `owner/name`, or None when the token names no repository.
|
|
801
807
|
"""
|
|
802
808
|
text = value.strip().strip("'\"")
|
|
803
809
|
if text.endswith(".git"):
|
|
@@ -805,7 +811,7 @@ def normalise_repo(value):
|
|
|
805
811
|
parts = [part for part in text.split("/") if part and not part.endswith(":")]
|
|
806
812
|
if len(parts) < 2:
|
|
807
813
|
return None
|
|
808
|
-
return
|
|
814
|
+
return "%s/%s" % (parts[-2], parts[-1])
|
|
809
815
|
|
|
810
816
|
|
|
811
817
|
def target_repository(args):
|
|
@@ -854,15 +860,19 @@ def roles_for(target):
|
|
|
854
860
|
permissive about which token, never about whether one is required.
|
|
855
861
|
|
|
856
862
|
Args:
|
|
857
|
-
target: The addressed repository, or None.
|
|
863
|
+
target: The addressed repository as typed, or None.
|
|
858
864
|
|
|
859
865
|
Returns:
|
|
860
866
|
A (roles, cross_repo_target) pair. The target is None when the calling
|
|
861
|
-
project is the one being written to.
|
|
867
|
+
project is the one being written to. When set it is the as-typed
|
|
868
|
+
spelling, because the refusal names it back to an operator.
|
|
862
869
|
"""
|
|
863
|
-
|
|
870
|
+
# GitHub is case-insensitive about owner and name, so the comparison folds
|
|
871
|
+
# case while the reported string keeps the operator's own spelling.
|
|
872
|
+
folded = target.lower() if target is not None else None
|
|
873
|
+
if folded is None or (own_repo and folded == own_repo):
|
|
864
874
|
return [ready_role], None
|
|
865
|
-
if upstream_repo and
|
|
875
|
+
if upstream_repo and folded == upstream_repo:
|
|
866
876
|
role = upstream_ready_role
|
|
867
877
|
else:
|
|
868
878
|
# Another repository Lisa has no configuration for. Its lane is
|
|
@@ -793,11 +793,17 @@ def normalise_repo(value):
|
|
|
793
793
|
token would call the same repository two different places depending on how
|
|
794
794
|
it was typed.
|
|
795
795
|
|
|
796
|
+
Casing is PRESERVED here and folded only at the point of comparison. The
|
|
797
|
+
refusal names this string back to an operator, and echoing
|
|
798
|
+
`codyswanngt/lisa` at someone who typed `CodySwannGT/lisa` reads as a
|
|
799
|
+
different repository — a message that has to be squinted at is the thing
|
|
800
|
+
this change is repairing.
|
|
801
|
+
|
|
796
802
|
Args:
|
|
797
803
|
value: The raw token.
|
|
798
804
|
|
|
799
805
|
Returns:
|
|
800
|
-
|
|
806
|
+
An as-typed `owner/name`, or None when the token names no repository.
|
|
801
807
|
"""
|
|
802
808
|
text = value.strip().strip("'\"")
|
|
803
809
|
if text.endswith(".git"):
|
|
@@ -805,7 +811,7 @@ def normalise_repo(value):
|
|
|
805
811
|
parts = [part for part in text.split("/") if part and not part.endswith(":")]
|
|
806
812
|
if len(parts) < 2:
|
|
807
813
|
return None
|
|
808
|
-
return
|
|
814
|
+
return "%s/%s" % (parts[-2], parts[-1])
|
|
809
815
|
|
|
810
816
|
|
|
811
817
|
def target_repository(args):
|
|
@@ -854,15 +860,19 @@ def roles_for(target):
|
|
|
854
860
|
permissive about which token, never about whether one is required.
|
|
855
861
|
|
|
856
862
|
Args:
|
|
857
|
-
target: The addressed repository, or None.
|
|
863
|
+
target: The addressed repository as typed, or None.
|
|
858
864
|
|
|
859
865
|
Returns:
|
|
860
866
|
A (roles, cross_repo_target) pair. The target is None when the calling
|
|
861
|
-
project is the one being written to.
|
|
867
|
+
project is the one being written to. When set it is the as-typed
|
|
868
|
+
spelling, because the refusal names it back to an operator.
|
|
862
869
|
"""
|
|
863
|
-
|
|
870
|
+
# GitHub is case-insensitive about owner and name, so the comparison folds
|
|
871
|
+
# case while the reported string keeps the operator's own spelling.
|
|
872
|
+
folded = target.lower() if target is not None else None
|
|
873
|
+
if folded is None or (own_repo and folded == own_repo):
|
|
864
874
|
return [ready_role], None
|
|
865
|
-
if upstream_repo and
|
|
875
|
+
if upstream_repo and folded == upstream_repo:
|
|
866
876
|
role = upstream_ready_role
|
|
867
877
|
else:
|
|
868
878
|
# Another repository Lisa has no configuration for. Its lane is
|
|
@@ -793,11 +793,17 @@ def normalise_repo(value):
|
|
|
793
793
|
token would call the same repository two different places depending on how
|
|
794
794
|
it was typed.
|
|
795
795
|
|
|
796
|
+
Casing is PRESERVED here and folded only at the point of comparison. The
|
|
797
|
+
refusal names this string back to an operator, and echoing
|
|
798
|
+
`codyswanngt/lisa` at someone who typed `CodySwannGT/lisa` reads as a
|
|
799
|
+
different repository — a message that has to be squinted at is the thing
|
|
800
|
+
this change is repairing.
|
|
801
|
+
|
|
796
802
|
Args:
|
|
797
803
|
value: The raw token.
|
|
798
804
|
|
|
799
805
|
Returns:
|
|
800
|
-
|
|
806
|
+
An as-typed `owner/name`, or None when the token names no repository.
|
|
801
807
|
"""
|
|
802
808
|
text = value.strip().strip("'\"")
|
|
803
809
|
if text.endswith(".git"):
|
|
@@ -805,7 +811,7 @@ def normalise_repo(value):
|
|
|
805
811
|
parts = [part for part in text.split("/") if part and not part.endswith(":")]
|
|
806
812
|
if len(parts) < 2:
|
|
807
813
|
return None
|
|
808
|
-
return
|
|
814
|
+
return "%s/%s" % (parts[-2], parts[-1])
|
|
809
815
|
|
|
810
816
|
|
|
811
817
|
def target_repository(args):
|
|
@@ -854,15 +860,19 @@ def roles_for(target):
|
|
|
854
860
|
permissive about which token, never about whether one is required.
|
|
855
861
|
|
|
856
862
|
Args:
|
|
857
|
-
target: The addressed repository, or None.
|
|
863
|
+
target: The addressed repository as typed, or None.
|
|
858
864
|
|
|
859
865
|
Returns:
|
|
860
866
|
A (roles, cross_repo_target) pair. The target is None when the calling
|
|
861
|
-
project is the one being written to.
|
|
867
|
+
project is the one being written to. When set it is the as-typed
|
|
868
|
+
spelling, because the refusal names it back to an operator.
|
|
862
869
|
"""
|
|
863
|
-
|
|
870
|
+
# GitHub is case-insensitive about owner and name, so the comparison folds
|
|
871
|
+
# case while the reported string keeps the operator's own spelling.
|
|
872
|
+
folded = target.lower() if target is not None else None
|
|
873
|
+
if folded is None or (own_repo and folded == own_repo):
|
|
864
874
|
return [ready_role], None
|
|
865
|
-
if upstream_repo and
|
|
875
|
+
if upstream_repo and folded == upstream_repo:
|
|
866
876
|
role = upstream_ready_role
|
|
867
877
|
else:
|
|
868
878
|
# Another repository Lisa has no configuration for. Its lane is
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "3.51.
|
|
3
|
+
"version": "3.51.5",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "3.51.
|
|
3
|
+
"version": "3.51.5",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, across Claude and Codex.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "3.51.
|
|
3
|
+
"version": "3.51.5",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "3.51.
|
|
3
|
+
"version": "3.51.5",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "3.51.
|
|
3
|
+
"version": "3.51.5",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -793,11 +793,17 @@ def normalise_repo(value):
|
|
|
793
793
|
token would call the same repository two different places depending on how
|
|
794
794
|
it was typed.
|
|
795
795
|
|
|
796
|
+
Casing is PRESERVED here and folded only at the point of comparison. The
|
|
797
|
+
refusal names this string back to an operator, and echoing
|
|
798
|
+
`codyswanngt/lisa` at someone who typed `CodySwannGT/lisa` reads as a
|
|
799
|
+
different repository — a message that has to be squinted at is the thing
|
|
800
|
+
this change is repairing.
|
|
801
|
+
|
|
796
802
|
Args:
|
|
797
803
|
value: The raw token.
|
|
798
804
|
|
|
799
805
|
Returns:
|
|
800
|
-
|
|
806
|
+
An as-typed `owner/name`, or None when the token names no repository.
|
|
801
807
|
"""
|
|
802
808
|
text = value.strip().strip("'\"")
|
|
803
809
|
if text.endswith(".git"):
|
|
@@ -805,7 +811,7 @@ def normalise_repo(value):
|
|
|
805
811
|
parts = [part for part in text.split("/") if part and not part.endswith(":")]
|
|
806
812
|
if len(parts) < 2:
|
|
807
813
|
return None
|
|
808
|
-
return
|
|
814
|
+
return "%s/%s" % (parts[-2], parts[-1])
|
|
809
815
|
|
|
810
816
|
|
|
811
817
|
def target_repository(args):
|
|
@@ -854,15 +860,19 @@ def roles_for(target):
|
|
|
854
860
|
permissive about which token, never about whether one is required.
|
|
855
861
|
|
|
856
862
|
Args:
|
|
857
|
-
target: The addressed repository, or None.
|
|
863
|
+
target: The addressed repository as typed, or None.
|
|
858
864
|
|
|
859
865
|
Returns:
|
|
860
866
|
A (roles, cross_repo_target) pair. The target is None when the calling
|
|
861
|
-
project is the one being written to.
|
|
867
|
+
project is the one being written to. When set it is the as-typed
|
|
868
|
+
spelling, because the refusal names it back to an operator.
|
|
862
869
|
"""
|
|
863
|
-
|
|
870
|
+
# GitHub is case-insensitive about owner and name, so the comparison folds
|
|
871
|
+
# case while the reported string keeps the operator's own spelling.
|
|
872
|
+
folded = target.lower() if target is not None else None
|
|
873
|
+
if folded is None or (own_repo and folded == own_repo):
|
|
864
874
|
return [ready_role], None
|
|
865
|
-
if upstream_repo and
|
|
875
|
+
if upstream_repo and folded == upstream_repo:
|
|
866
876
|
role = upstream_ready_role
|
|
867
877
|
else:
|
|
868
878
|
# Another repository Lisa has no configuration for. Its lane is
|