@codyswann/lisa 4.74.2 → 4.74.4
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/cdk/create-only/.github/workflows/deploy.yml +58 -1
- package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
- package/dist/core/lisa-owned-hash-ledger.js +2 -0
- package/dist/core/lisa-owned-hash-ledger.js.map +1 -1
- package/dist/core/nightly-e2e-guard-behavior-certificate.d.ts +2 -2
- package/dist/core/nightly-e2e-guard-behavior-certificate.js +6 -6
- package/dist/core/nightly-e2e-guard-behavior-certificate.js.map +1 -1
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +11 -7
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/expo/create-only/.github/workflows/deploy.yml +106 -3
- package/harper-fabric/create-only/.github/workflows/deploy.yml +97 -0
- package/nestjs/create-only/.github/workflows/deploy.yml +135 -2
- 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-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-cursor/.claude-plugin/plugin.json +1 -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-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/rails/create-only/.github/workflows/deploy.yml +97 -2
- package/scripts/two-channel-couplings.json +1 -1
- package/typescript/copy-overwrite/scripts/check-nightly-e2e-health.mjs +227 -41
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "4.74.
|
|
3
|
+
"version": "4.74.4",
|
|
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.74.
|
|
3
|
+
"version": "4.74.4",
|
|
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.74.
|
|
3
|
+
"version": "4.74.4",
|
|
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.74.
|
|
3
|
+
"version": "4.74.4",
|
|
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.74.
|
|
3
|
+
"version": "4.74.4",
|
|
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"
|
|
@@ -40,17 +40,75 @@ on:
|
|
|
40
40
|
# `main` to `production` and is passed as `RAILS_ENV`.
|
|
41
41
|
#
|
|
42
42
|
# Until then production is still reachable by hand: `workflow_dispatch`
|
|
43
|
-
#
|
|
43
|
+
# lets you select a branch and optionally approve a deliberate rollback from
|
|
44
44
|
# the Actions tab. What is switched off here is the AUTOMATIC deploy on
|
|
45
45
|
# every push to `main`.
|
|
46
46
|
# - main
|
|
47
47
|
workflow_dispatch:
|
|
48
|
+
inputs:
|
|
49
|
+
rollback_commit:
|
|
50
|
+
description: 'Commit SHA to deploy for a deliberate rollback; leave empty for the run commit'
|
|
51
|
+
required: false
|
|
52
|
+
default: ''
|
|
53
|
+
type: string
|
|
54
|
+
force_stale_deploy:
|
|
55
|
+
description: "Allow a deliberate rollback to this run's old commit (may overwrite a newer deployment)"
|
|
56
|
+
required: false
|
|
57
|
+
default: false
|
|
58
|
+
type: boolean
|
|
48
59
|
|
|
49
60
|
concurrency:
|
|
50
61
|
group: ${{ github.ref }}-deploy
|
|
51
62
|
cancel-in-progress: true
|
|
52
63
|
|
|
53
64
|
jobs:
|
|
65
|
+
# Re-runs retain their original SHA. Refuse an old run before release or deployment.
|
|
66
|
+
validate_deploy_commit:
|
|
67
|
+
name: 🚦 Validate Deployment Commit
|
|
68
|
+
runs-on: ubuntu-latest
|
|
69
|
+
timeout-minutes: 5
|
|
70
|
+
permissions:
|
|
71
|
+
contents: read
|
|
72
|
+
steps:
|
|
73
|
+
- uses: actions/checkout@v6
|
|
74
|
+
with:
|
|
75
|
+
ref: ${{ github.event_name == 'workflow_dispatch' && inputs.rollback_commit || github.sha }}
|
|
76
|
+
# Check the actual checkout again on job-only retries; earlier jobs may not rerun.
|
|
77
|
+
- name: 🚦 Refuse stale deployment
|
|
78
|
+
shell: bash
|
|
79
|
+
env:
|
|
80
|
+
DEPLOY_BRANCH: ${{ github.event_name == 'workflow_dispatch' && inputs.environment || github.ref_name }}
|
|
81
|
+
DEPLOY_EVENT: ${{ github.event_name }}
|
|
82
|
+
FORCE_STALE_DEPLOY: ${{ github.event_name == 'workflow_dispatch' && inputs.force_stale_deploy == true }}
|
|
83
|
+
run: |
|
|
84
|
+
set -euo pipefail
|
|
85
|
+
DEPLOY_SHA=$(git rev-parse HEAD)
|
|
86
|
+
TARGET_REF="refs/heads/$DEPLOY_BRANCH"
|
|
87
|
+
if ! git check-ref-format "$TARGET_REF"; then
|
|
88
|
+
echo "::error::Invalid deployment branch: $DEPLOY_BRANCH. Choose an existing branch."
|
|
89
|
+
exit 1
|
|
90
|
+
fi
|
|
91
|
+
if ! REMOTE=$(git ls-remote --exit-code --heads origin "$TARGET_REF"); then
|
|
92
|
+
echo "::error::Cannot read the current tip of $DEPLOY_BRANCH. Nothing will be deployed. Check repository access and the branch name, then retry."
|
|
93
|
+
exit 1
|
|
94
|
+
fi
|
|
95
|
+
read -r TIP RESOLVED_REF <<< "$REMOTE"
|
|
96
|
+
if [[ ! "$TIP" =~ ^[0-9a-f]{40}$ ]] || [ "$RESOLVED_REF" != "$TARGET_REF" ]; then
|
|
97
|
+
echo "::error::Could not verify the current tip of $DEPLOY_BRANCH. Nothing will be deployed."
|
|
98
|
+
exit 1
|
|
99
|
+
fi
|
|
100
|
+
if [ "$DEPLOY_SHA" = "$TIP" ]; then
|
|
101
|
+
echo "✅ Deployment commit $DEPLOY_SHA is the current tip of $DEPLOY_BRANCH."
|
|
102
|
+
exit 0
|
|
103
|
+
fi
|
|
104
|
+
if [ "$DEPLOY_EVENT" = "workflow_dispatch" ] && [ "$FORCE_STALE_DEPLOY" = "true" ]; then
|
|
105
|
+
echo "::warning title=Deliberate stale deployment::Deploying non-tip commit $DEPLOY_SHA to $DEPLOY_BRANCH; the current branch tip is $TIP. force_stale_deploy was explicitly enabled."
|
|
106
|
+
echo "### ⚠️ Deliberate rollback: deploying $DEPLOY_SHA to $DEPLOY_BRANCH instead of current tip $TIP." >> "${GITHUB_STEP_SUMMARY:-/dev/stdout}"
|
|
107
|
+
exit 0
|
|
108
|
+
fi
|
|
109
|
+
echo "::error title=Stale deployment refused::This run would deploy $DEPLOY_SHA, but $DEPLOY_BRANCH is now at $TIP. This is probably a re-run of an old run and would roll the environment back. Re-run the latest deploy run for this branch, or start workflow_dispatch on the branch tip. For a deliberate rollback only, explicitly enable force_stale_deploy in a manual run."
|
|
110
|
+
exit 1
|
|
111
|
+
|
|
54
112
|
# ── Pre-deploy gates ──────────────────────────────────────────────────────
|
|
55
113
|
# Resolves `pre-deploy:<branch>` from the `gates` block of .lisa.config.json
|
|
56
114
|
# and runs whatever is declared there, BEFORE the release.
|
|
@@ -70,6 +128,7 @@ jobs:
|
|
|
70
128
|
# provers need Bundler should point `runner` in .lisa.config.json at a command
|
|
71
129
|
# that sets it up, or replace this job with one that does.
|
|
72
130
|
pre_deploy_gates:
|
|
131
|
+
needs: [validate_deploy_commit]
|
|
73
132
|
name: 🚦 Pre-Deploy Gates
|
|
74
133
|
uses: CodySwannGT/lisa/.github/workflows/gates.yml@main
|
|
75
134
|
with:
|
|
@@ -170,7 +229,43 @@ jobs:
|
|
|
170
229
|
uses: actions/checkout@v6
|
|
171
230
|
with:
|
|
172
231
|
fetch-depth: 0
|
|
173
|
-
ref: ${{ github.ref_name }}
|
|
232
|
+
ref: ${{ inputs.force_stale_deploy == true && (inputs.rollback_commit || github.sha) || github.ref_name }}
|
|
233
|
+
|
|
234
|
+
# Check the actual checkout again on job-only retries; earlier jobs may not rerun.
|
|
235
|
+
- name: 🚦 Refuse stale deployment
|
|
236
|
+
shell: bash
|
|
237
|
+
env:
|
|
238
|
+
DEPLOY_BRANCH: ${{ github.event_name == 'workflow_dispatch' && inputs.environment || github.ref_name }}
|
|
239
|
+
DEPLOY_EVENT: ${{ github.event_name }}
|
|
240
|
+
FORCE_STALE_DEPLOY: ${{ github.event_name == 'workflow_dispatch' && inputs.force_stale_deploy == true }}
|
|
241
|
+
run: |
|
|
242
|
+
set -euo pipefail
|
|
243
|
+
DEPLOY_SHA=$(git rev-parse HEAD)
|
|
244
|
+
TARGET_REF="refs/heads/$DEPLOY_BRANCH"
|
|
245
|
+
if ! git check-ref-format "$TARGET_REF"; then
|
|
246
|
+
echo "::error::Invalid deployment branch: $DEPLOY_BRANCH. Choose an existing branch."
|
|
247
|
+
exit 1
|
|
248
|
+
fi
|
|
249
|
+
if ! REMOTE=$(git ls-remote --exit-code --heads origin "$TARGET_REF"); then
|
|
250
|
+
echo "::error::Cannot read the current tip of $DEPLOY_BRANCH. Nothing will be deployed. Check repository access and the branch name, then retry."
|
|
251
|
+
exit 1
|
|
252
|
+
fi
|
|
253
|
+
read -r TIP RESOLVED_REF <<< "$REMOTE"
|
|
254
|
+
if [[ ! "$TIP" =~ ^[0-9a-f]{40}$ ]] || [ "$RESOLVED_REF" != "$TARGET_REF" ]; then
|
|
255
|
+
echo "::error::Could not verify the current tip of $DEPLOY_BRANCH. Nothing will be deployed."
|
|
256
|
+
exit 1
|
|
257
|
+
fi
|
|
258
|
+
if [ "$DEPLOY_SHA" = "$TIP" ]; then
|
|
259
|
+
echo "✅ Deployment commit $DEPLOY_SHA is the current tip of $DEPLOY_BRANCH."
|
|
260
|
+
exit 0
|
|
261
|
+
fi
|
|
262
|
+
if [ "$DEPLOY_EVENT" = "workflow_dispatch" ] && [ "$FORCE_STALE_DEPLOY" = "true" ]; then
|
|
263
|
+
echo "::warning title=Deliberate stale deployment::Deploying non-tip commit $DEPLOY_SHA to $DEPLOY_BRANCH; the current branch tip is $TIP. force_stale_deploy was explicitly enabled."
|
|
264
|
+
echo "### ⚠️ Deliberate rollback: deploying $DEPLOY_SHA to $DEPLOY_BRANCH instead of current tip $TIP." >> "${GITHUB_STEP_SUMMARY:-/dev/stdout}"
|
|
265
|
+
exit 0
|
|
266
|
+
fi
|
|
267
|
+
echo "::error title=Stale deployment refused::This run would deploy $DEPLOY_SHA, but $DEPLOY_BRANCH is now at $TIP. This is probably a re-run of an old run and would roll the environment back. Re-run the latest deploy run for this branch, or start workflow_dispatch on the branch tip. For a deliberate rollback only, explicitly enable force_stale_deploy in a manual run."
|
|
268
|
+
exit 1
|
|
174
269
|
|
|
175
270
|
- uses: noliran/branch-based-secrets@ef9182f16f118c7c3d05c36973546ebc990b8c69 # v1 (2020-10-09, no semver tag)
|
|
176
271
|
with:
|