@codyswann/lisa 4.81.4 → 4.81.6
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/parity-safety-net.sh +236 -16
- package/dist/core/downstream-references.d.ts.map +1 -1
- package/dist/core/downstream-references.js +3 -0
- package/dist/core/downstream-references.js.map +1 -1
- package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
- package/dist/core/lisa-owned-hash-ledger.js +8 -0
- package/dist/core/lisa-owned-hash-ledger.js.map +1 -1
- package/dist/core/nightly-e2e-guard-behavior-certificate.js +2 -2
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +17 -12
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/dist/opencode/plugin-templates/parity-safety-net.sh +236 -16
- package/package.json +4 -4
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/skills/lisa-secrets-access/scripts/validate-config.mjs +30 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/SKILL.md +13 -6
- package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/references/runbook-template.md +4 -3
- package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/scripts/cli-queue.mjs +9 -3
- package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/scripts/cli-runtime.mjs +1 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/scripts/cli-usage.mjs +4 -1
- package/plugins/lisa/.codex-plugin/skills/lisa-session-manager/scripts/config.mjs +4 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-setup-session-manager/SKILL.md +13 -1
- package/plugins/lisa/hooks/parity-safety-net.sh +236 -16
- package/plugins/lisa/rules/reference/config-resolution.md +1 -0
- package/plugins/lisa/scripts/ready-queue-order.mjs +34 -14
- package/plugins/lisa/skills/lisa-secrets-access/scripts/validate-config.mjs +30 -0
- package/plugins/lisa/skills/lisa-session-manager/SKILL.md +13 -6
- package/plugins/lisa/skills/lisa-session-manager/references/runbook-template.md +4 -3
- package/plugins/lisa/skills/lisa-session-manager/scripts/cli-queue.mjs +9 -3
- package/plugins/lisa/skills/lisa-session-manager/scripts/cli-runtime.mjs +1 -0
- package/plugins/lisa/skills/lisa-session-manager/scripts/cli-usage.mjs +4 -1
- package/plugins/lisa/skills/lisa-session-manager/scripts/config.mjs +4 -0
- package/plugins/lisa/skills/lisa-setup-session-manager/SKILL.md +13 -1
- package/plugins/lisa-agy/hooks/parity-safety-net.sh +236 -16
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-agy/scripts/ready-queue-order.mjs +34 -14
- package/plugins/lisa-agy/skills/lisa-secrets-access/scripts/validate-config.mjs +30 -0
- package/plugins/lisa-agy/skills/lisa-session-manager/SKILL.md +13 -6
- package/plugins/lisa-agy/skills/lisa-session-manager/references/runbook-template.md +4 -3
- package/plugins/lisa-agy/skills/lisa-session-manager/scripts/cli-queue.mjs +9 -3
- package/plugins/lisa-agy/skills/lisa-session-manager/scripts/cli-runtime.mjs +1 -0
- package/plugins/lisa-agy/skills/lisa-session-manager/scripts/cli-usage.mjs +4 -1
- package/plugins/lisa-agy/skills/lisa-session-manager/scripts/config.mjs +4 -0
- package/plugins/lisa-agy/skills/lisa-setup-session-manager/SKILL.md +13 -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-cdk-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-devin/.devin-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/hooks/parity-safety-net.sh +236 -16
- package/plugins/lisa-copilot/rules/reference/config-resolution.md +1 -0
- package/plugins/lisa-copilot/scripts/ready-queue-order.mjs +34 -14
- package/plugins/lisa-copilot/skills/lisa-secrets-access/scripts/validate-config.mjs +30 -0
- package/plugins/lisa-copilot/skills/lisa-session-manager/SKILL.md +13 -6
- package/plugins/lisa-copilot/skills/lisa-session-manager/references/runbook-template.md +4 -3
- package/plugins/lisa-copilot/skills/lisa-session-manager/scripts/cli-queue.mjs +9 -3
- package/plugins/lisa-copilot/skills/lisa-session-manager/scripts/cli-runtime.mjs +1 -0
- package/plugins/lisa-copilot/skills/lisa-session-manager/scripts/cli-usage.mjs +4 -1
- package/plugins/lisa-copilot/skills/lisa-session-manager/scripts/config.mjs +4 -0
- package/plugins/lisa-copilot/skills/lisa-setup-session-manager/SKILL.md +13 -1
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/hooks/parity-safety-net.sh +236 -16
- package/plugins/lisa-cursor/rules/config-resolution-reference.mdc +1 -0
- package/plugins/lisa-cursor/scripts/ready-queue-order.mjs +34 -14
- package/plugins/lisa-cursor/skills/lisa-secrets-access/scripts/validate-config.mjs +30 -0
- package/plugins/lisa-cursor/skills/lisa-session-manager/SKILL.md +13 -6
- package/plugins/lisa-cursor/skills/lisa-session-manager/references/runbook-template.md +4 -3
- package/plugins/lisa-cursor/skills/lisa-session-manager/scripts/cli-queue.mjs +9 -3
- package/plugins/lisa-cursor/skills/lisa-session-manager/scripts/cli-runtime.mjs +1 -0
- package/plugins/lisa-cursor/skills/lisa-session-manager/scripts/cli-usage.mjs +4 -1
- package/plugins/lisa-cursor/skills/lisa-session-manager/scripts/config.mjs +4 -0
- package/plugins/lisa-cursor/skills/lisa-setup-session-manager/SKILL.md +13 -1
- package/plugins/lisa-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-devin/.devin-plugin/plugin.json +1 -1
- package/plugins/lisa-devin/hooks/parity-safety-net.sh +236 -16
- package/plugins/lisa-devin/rules/reference/config-resolution.md +1 -0
- package/plugins/lisa-devin/scripts/ready-queue-order.mjs +34 -14
- package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/validate-config.mjs +30 -0
- package/plugins/lisa-devin/skills/lisa-session-manager/SKILL.md +13 -6
- package/plugins/lisa-devin/skills/lisa-session-manager/references/runbook-template.md +4 -3
- package/plugins/lisa-devin/skills/lisa-session-manager/scripts/cli-queue.mjs +9 -3
- package/plugins/lisa-devin/skills/lisa-session-manager/scripts/cli-runtime.mjs +1 -0
- package/plugins/lisa-devin/skills/lisa-session-manager/scripts/cli-usage.mjs +4 -1
- package/plugins/lisa-devin/skills/lisa-session-manager/scripts/config.mjs +4 -0
- package/plugins/lisa-devin/skills/lisa-setup-session-manager/SKILL.md +13 -1
- 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-expo-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-devin/.devin-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-harper-fabric-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-devin/.devin-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-nestjs-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-devin/.devin-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-openclaw-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-devin/.devin-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-phaser-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-devin/.devin-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-rails-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-devin/.devin-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-typescript-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-devin/.devin-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/lisa-wiki-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-devin/.devin-plugin/plugin.json +1 -1
- package/plugins/src/base/hooks/parity-safety-net.sh +236 -16
- package/plugins/src/base/rules/reference/config-resolution.md +1 -0
- package/plugins/src/base/scripts/ready-queue-order.mjs +34 -14
- package/plugins/src/base/skills/lisa-secrets-access/scripts/validate-config.mjs +30 -0
- package/plugins/src/base/skills/lisa-session-manager/SKILL.md +13 -6
- package/plugins/src/base/skills/lisa-session-manager/references/runbook-template.md +4 -3
- package/plugins/src/base/skills/lisa-session-manager/scripts/cli-queue.mjs +9 -3
- package/plugins/src/base/skills/lisa-session-manager/scripts/cli-runtime.mjs +1 -0
- package/plugins/src/base/skills/lisa-session-manager/scripts/cli-usage.mjs +4 -1
- package/plugins/src/base/skills/lisa-session-manager/scripts/config.mjs +4 -0
- package/plugins/src/base/skills/lisa-setup-session-manager/SKILL.md +13 -1
|
@@ -66,7 +66,12 @@ the manager.
|
|
|
66
66
|
claims go through `lisa-tracker-claim`. Never call a vendor API around them.
|
|
67
67
|
- **"Me".** Resolve once per manager run and store it with `ledger control --me <id>`: GitHub
|
|
68
68
|
`gh api user --jq .login`; Jira the accountId from the `lisa-atlassian-access` identity probe;
|
|
69
|
-
Linear `viewer.id` through `lisa-linear-access`.
|
|
69
|
+
Linear `viewer.id` through `lisa-linear-access`. "Me" is whoever the tracker credential belongs
|
|
70
|
+
to, which is often an agent account.
|
|
71
|
+
- **Operators.** `sessionManager.operatorIds` names the people the manager works for (the same
|
|
72
|
+
kind of id as "me": GitHub login, Jira accountId, Linear user id). Their assigned items come
|
|
73
|
+
first, then items assigned to "me", then unassigned. Items assigned to anyone else are never
|
|
74
|
+
dispatched. Never treat an operator's item as someone else's.
|
|
70
75
|
- **Workers** start only through `spawn`. The worker prompt is exactly
|
|
71
76
|
`/lisa:implement <REF> managedBy=<manager-name>`; `lisa-implement` owns what `managedBy=` means.
|
|
72
77
|
Never start a worker another way, and never reuse a worker for another item or a new attempt.
|
|
@@ -207,8 +212,8 @@ Skip while `capacity` reports `paused`. Otherwise:
|
|
|
207
212
|
Raw Jira issues carry `key` and `fields` (summary, priority, assignee, created, labels,
|
|
208
213
|
description, reporter, issuetype, subtasks); raw Linear nodes carry identifier, title, priority,
|
|
209
214
|
createdAt, assignee, labels, description, creator and children with their state type.
|
|
210
|
-
- `ordered` is the dispatch order
|
|
211
|
-
needs no action.
|
|
215
|
+
- `ordered` is the dispatch order: assigned to an operator, then to "me", then unassigned; each
|
|
216
|
+
group by priority, then age. `excluded` needs no action.
|
|
212
217
|
2. **While `capacity` says `can_spawn`** and items remain, take the next item that has no pending
|
|
213
218
|
question in the ledger:
|
|
214
219
|
1. Read it fully (`lisa-tracker-read`): title, description, labels, project, parent, comments.
|
|
@@ -223,9 +228,11 @@ Skip while `capacity` reports `paused`. Otherwise:
|
|
|
223
228
|
`cd "$(node "$SM/session-manager.mjs" repo-dir --repo <key> --raw --project-root "$ROOT")"`
|
|
224
229
|
(omit `--repo` on a single-repo project), invoke `lisa-tracker-claim <ref>`, then
|
|
225
230
|
`cd "$ROOT" && pwd` and confirm the path. Continue only on `claimed` or `reused` with the
|
|
226
|
-
assignee equal to "me"
|
|
227
|
-
|
|
228
|
-
|
|
231
|
+
assignee equal to "me" or to one of `sessionManager.operatorIds` (the claim assigns only an
|
|
232
|
+
unassigned item, so an operator's item keeps the operator); anything else means skip. Then
|
|
233
|
+
re-read the item with `lisa-tracker-read`: if the re-read shows an assignee that is neither
|
|
234
|
+
"me" nor an operator, or shows the state did not change to the `claimed` role, skip it
|
|
235
|
+
(someone else holds it, or the claim did not land).
|
|
229
236
|
Never spawn on the claim's word alone.
|
|
230
237
|
4. **Spawn.** `spawn <ref> [--repo <key>]`.
|
|
231
238
|
- exit 0: post `[<REF>] started in <repo> (<name>)` to Telegram.
|
|
@@ -18,9 +18,10 @@ session list from `claude agents`; and the project's own Telegram chat.
|
|
|
18
18
|
|
|
19
19
|
## Candidate selection
|
|
20
20
|
|
|
21
|
-
Leaf items in the `ready` role, ordered: assigned to
|
|
22
|
-
then
|
|
23
|
-
|
|
21
|
+
Leaf items in the `ready` role, ordered: assigned to an operator (`sessionManager.operatorIds`),
|
|
22
|
+
then to the manager's own tracker identity, then unassigned; within each, by priority, then oldest.
|
|
23
|
+
Items assigned to someone else, containers, human-held items and (when configured) items by
|
|
24
|
+
untrusted authors are skipped. As many as the machine has capacity for.
|
|
24
25
|
|
|
25
26
|
## Scope/bounds
|
|
26
27
|
|
|
@@ -123,9 +123,11 @@ function readEnvelopeQueue(ctx, tracker) {
|
|
|
123
123
|
}
|
|
124
124
|
|
|
125
125
|
/**
|
|
126
|
-
* `queue --tracker <github|jira|linear>`: the Ready queue,
|
|
126
|
+
* `queue --tracker <github|jira|linear>`: the Ready queue, the operator's
|
|
127
|
+
* items first (`sessionManager.operatorIds`), then mine, then unassigned.
|
|
127
128
|
* @param {object} ctx - CLI context
|
|
128
|
-
* @returns {Promise<{ json: object }>}
|
|
129
|
+
* @returns {Promise<{ json: object }>}
|
|
130
|
+
* `{tracker,me,operators,total,pages,ordered,excluded}`
|
|
129
131
|
*/
|
|
130
132
|
export async function queue(ctx) {
|
|
131
133
|
const tracker = ctx.values.tracker;
|
|
@@ -139,10 +141,14 @@ export async function queue(ctx) {
|
|
|
139
141
|
? fetchGithubQueue(ctx, project)
|
|
140
142
|
: readEnvelopeQueue(ctx, tracker);
|
|
141
143
|
const me = ctx.values.me ?? (await readLedger(ctx.root)).control.me ?? null;
|
|
144
|
+
const operators = config?.operatorIds ?? [];
|
|
142
145
|
const order = orderReadyQueue(items, {
|
|
143
146
|
me,
|
|
147
|
+
operators,
|
|
144
148
|
trustedAuthorIds: config?.trustedAuthorIds ?? undefined,
|
|
145
149
|
humanNeededLabel: humanNeededLabel(project, tracker),
|
|
146
150
|
});
|
|
147
|
-
return {
|
|
151
|
+
return {
|
|
152
|
+
json: { tracker, me, operators, total: items.length, pages, ...order },
|
|
153
|
+
};
|
|
148
154
|
}
|
|
@@ -111,7 +111,10 @@ Per cycle
|
|
|
111
111
|
queue --tracker jira|linear --input <file> [--me <id>]
|
|
112
112
|
<file> = {complete:true,pages,items:[raw vendor issues]}; exit 2 unless
|
|
113
113
|
complete is exactly true.
|
|
114
|
-
Both print {tracker,me,total,pages,ordered,excluded:[{ref,
|
|
114
|
+
Both print {tracker,me,operators,total,pages,ordered,excluded:[{ref,
|
|
115
|
+
reason}]}. ordered: items assigned to sessionManager.operatorIds
|
|
116
|
+
first, then to --me, then unassigned; each group by priority, then age.
|
|
117
|
+
Items assigned to anyone else are excluded (assigned-to-other).
|
|
115
118
|
--me defaults to the ledger's control.me.
|
|
116
119
|
ledger get [<ref>]
|
|
117
120
|
ledger record-spawn <ref> --worker <name> [--session-id <id>] [--repo <key>]
|
|
@@ -66,6 +66,7 @@ export const SESSION_MANAGER_DEFAULTS = Object.freeze({
|
|
|
66
66
|
* stall: StallBlock,
|
|
67
67
|
* notify: NotifyBlock,
|
|
68
68
|
* trustedAuthorIds: string[] | null,
|
|
69
|
+
* operatorIds?: string[] | null,
|
|
69
70
|
* }} SessionManagerConfig
|
|
70
71
|
* @typedef {{
|
|
71
72
|
* name: string,
|
|
@@ -120,6 +121,9 @@ export function resolveSessionManagerConfig(globalConfig, localConfig) {
|
|
|
120
121
|
...merged,
|
|
121
122
|
repos,
|
|
122
123
|
trustedAuthorIds: merged.trustedAuthorIds ?? null,
|
|
124
|
+
// Left as declared: absent stays undefined and an explicit null stays null,
|
|
125
|
+
// so validation can refuse the null instead of reading it as "no operators".
|
|
126
|
+
operatorIds: merged.operatorIds,
|
|
123
127
|
};
|
|
124
128
|
}
|
|
125
129
|
|
|
@@ -54,7 +54,19 @@ writes `$SM`, and pass `--project-root "$ROOT"` (the absolute project root) on e
|
|
|
54
54
|
bypass-permissions worker; say so plainly. The list holds stable tracker user ids as strings,
|
|
55
55
|
never logins: the GitHub numeric user id (`gh api users/<login> --jq .id`), the Jira
|
|
56
56
|
`accountId`, or the Linear user id. A login matches no one and silently excludes every item.
|
|
57
|
-
4. `
|
|
57
|
+
4. Set `sessionManager.operatorIds` to a non-empty **array** holding the operator's own tracker
|
|
58
|
+
user id, e.g. `"operatorIds": ["<operator-id>"]` (a bare string fails `validate`). Look up the
|
|
59
|
+
OPERATOR, not the credential: `gh api user` / `viewer.id` return whoever the tracker credential
|
|
60
|
+
belongs to, which is the agent account in exactly the case this key exists for. The manager dispatches
|
|
61
|
+
the operator's assigned items first, then items assigned to the tracker credential's identity
|
|
62
|
+
("me"), then unassigned ones, and skips items assigned to anyone else. When the tracker
|
|
63
|
+
credential is not the operator's (an agent or bot account), leaving this unset means the
|
|
64
|
+
operator's own Ready items are never dispatched; say so plainly. Unlike `trustedAuthorIds`, this
|
|
65
|
+
is matched against the assignee, exactly and case-sensitively, so use the same kind of id as
|
|
66
|
+
"me", spelled as the tracker API returns it: the GitHub **login** (`gh api users/<login> --jq
|
|
67
|
+
.login`), the Jira `accountId`, or the Linear user id (the operator's entry in the team's member
|
|
68
|
+
list, or `viewer.id` only when the operator runs the lookup with their own credential).
|
|
69
|
+
5. `node "$SM/session-manager.mjs" validate --project-root "$ROOT"` must print `valid: true`.
|
|
58
70
|
|
|
59
71
|
## Step 3: Store the bot token
|
|
60
72
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "4.81.
|
|
3
|
+
"version": "4.81.6",
|
|
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": "4.81.
|
|
3
|
+
"version": "4.81.6",
|
|
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": "4.81.
|
|
3
|
+
"version": "4.81.6",
|
|
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": "4.81.
|
|
3
|
+
"version": "4.81.6",
|
|
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": "4.81.
|
|
3
|
+
"version": "4.81.6",
|
|
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": "4.81.
|
|
3
|
+
"version": "4.81.6",
|
|
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": "4.81.
|
|
3
|
+
"version": "4.81.6",
|
|
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"
|