@codyswann/lisa 2.293.1 → 2.295.0
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 +19 -0
- package/dist/cli/deploy-status-adapter-github.d.ts +20 -0
- package/dist/cli/deploy-status-adapter-github.d.ts.map +1 -0
- package/dist/cli/deploy-status-adapter-github.js +167 -0
- package/dist/cli/deploy-status-adapter-github.js.map +1 -0
- package/dist/cli/deploy-status-adapter-jira.d.ts +18 -0
- package/dist/cli/deploy-status-adapter-jira.d.ts.map +1 -0
- package/dist/cli/deploy-status-adapter-jira.js +215 -0
- package/dist/cli/deploy-status-adapter-jira.js.map +1 -0
- package/dist/cli/deploy-status-adapter-linear.d.ts +16 -0
- package/dist/cli/deploy-status-adapter-linear.d.ts.map +1 -0
- package/dist/cli/deploy-status-adapter-linear.js +204 -0
- package/dist/cli/deploy-status-adapter-linear.js.map +1 -0
- package/dist/cli/deploy-status-adapter-shared.d.ts +57 -0
- package/dist/cli/deploy-status-adapter-shared.d.ts.map +1 -0
- package/dist/cli/deploy-status-adapter-shared.js +62 -0
- package/dist/cli/deploy-status-adapter-shared.js.map +1 -0
- package/dist/cli/deploy-status-adapter.d.ts +49 -0
- package/dist/cli/deploy-status-adapter.d.ts.map +1 -0
- package/dist/cli/deploy-status-adapter.js +87 -0
- package/dist/cli/deploy-status-adapter.js.map +1 -0
- package/dist/cli/deploy-status-refs.d.ts +70 -0
- package/dist/cli/deploy-status-refs.d.ts.map +1 -0
- package/dist/cli/deploy-status-refs.js +195 -0
- package/dist/cli/deploy-status-refs.js.map +1 -0
- package/dist/cli/deploy-status-sync-cmd.d.ts +23 -0
- package/dist/cli/deploy-status-sync-cmd.d.ts.map +1 -0
- package/dist/cli/deploy-status-sync-cmd.js +75 -0
- package/dist/cli/deploy-status-sync-cmd.js.map +1 -0
- package/dist/cli/deploy-status-sync-engine.d.ts +49 -0
- package/dist/cli/deploy-status-sync-engine.d.ts.map +1 -0
- package/dist/cli/deploy-status-sync-engine.js +214 -0
- package/dist/cli/deploy-status-sync-engine.js.map +1 -0
- package/dist/cli/deploy-status-sync-exec.d.ts +73 -0
- package/dist/cli/deploy-status-sync-exec.d.ts.map +1 -0
- package/dist/cli/deploy-status-sync-exec.js +95 -0
- package/dist/cli/deploy-status-sync-exec.js.map +1 -0
- package/dist/cli/gate-commands.d.ts +3 -1
- package/dist/cli/gate-commands.d.ts.map +1 -1
- package/dist/cli/gate-commands.js +26 -0
- package/dist/cli/gate-commands.js.map +1 -1
- package/dist/cli/index.d.ts +2 -7
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +4 -43
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/kane-commands.d.ts +21 -0
- package/dist/cli/kane-commands.d.ts.map +1 -0
- package/dist/cli/kane-commands.js +44 -0
- package/dist/cli/kane-commands.js.map +1 -0
- package/dist/cli/update-check.d.ts +8 -0
- package/dist/cli/update-check.d.ts.map +1 -1
- package/dist/cli/update-check.js +4 -2
- package/dist/cli/update-check.js.map +1 -1
- package/dist/core/deploy-status-sync.d.ts +15 -0
- package/dist/core/deploy-status-sync.d.ts.map +1 -1
- package/dist/core/deploy-status-sync.js +57 -19
- package/dist/core/deploy-status-sync.js.map +1 -1
- package/dist/core/deploy-status-transition.d.ts +97 -0
- package/dist/core/deploy-status-transition.d.ts.map +1 -0
- package/dist/core/deploy-status-transition.js +134 -0
- package/dist/core/deploy-status-transition.js.map +1 -0
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +29 -8
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/expo/create-only/.github/workflows/deploy.yml +13 -0
- package/harper-fabric/create-only/.github/workflows/deploy.yml +5 -0
- package/nestjs/create-only/.github/workflows/deploy.yml +14 -0
- 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/rules/eager/config-resolution.md +3 -2
- package/plugins/lisa/rules/reference/config-resolution.md +13 -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-copilot/rules/eager/config-resolution.md +3 -2
- package/plugins/lisa-copilot/rules/reference/config-resolution.md +13 -1
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/rules/config-resolution-reference.mdc +13 -1
- package/plugins/lisa-cursor/rules/config-resolution.mdc +3 -2
- 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/rules/eager/config-resolution.md +3 -2
- package/plugins/src/base/rules/reference/config-resolution.md +13 -1
- package/rails/create-only/.github/workflows/deploy.yml +5 -0
- package/typescript/copy-overwrite/.github/GITHUB_ACTIONS.md +28 -0
|
@@ -91,7 +91,8 @@ forward cherry-picked down to the integration branch via a linked follow-up.
|
|
|
91
91
|
`deployStatusSync` is an optional machine-written config block (`tier`, `provisioned` ids,
|
|
92
92
|
`linearBinding: labels|states`, `verifiedAt`). The deploy ladder is `deploy.order` (else canonical
|
|
93
93
|
`dev < staging < production`) over `deploy.branches` joined with the tracker's env-keyed done map;
|
|
94
|
-
a configured done status whose env has no branch is a config error
|
|
95
|
-
|
|
94
|
+
a configured done status whose env has no branch is a config error — unless its value is exactly
|
|
95
|
+
the built-in default (a sync-materialized fallback, invisible everywhere: stripped before the
|
|
96
|
+
union, never blocking the alias) — and the sole `prod` ↔ `production` alias applies to the join.
|
|
96
97
|
|
|
97
98
|
Full reference: [reference/config-resolution.md](../reference/config-resolution.md).
|
|
@@ -636,9 +636,21 @@ configured surfaces (`deploy.branches`, the configured done map,
|
|
|
636
636
|
configured spelling. When both spellings appear they are distinct environments
|
|
637
637
|
and no aliasing occurs. No other alias exists.
|
|
638
638
|
|
|
639
|
+
**Materialized defaults are fallbacks.** `lisa sync` writes the full default
|
|
640
|
+
done map into config, so a configured done-map entry whose value is EXACTLY
|
|
641
|
+
the default table's value for that env is treated as a materialized fallback,
|
|
642
|
+
not operator intent — and it is invisible for ALL purposes: stripped before
|
|
643
|
+
the env-key union is computed, it never blocks the sole `prod` ↔ `production`
|
|
644
|
+
alias, never raises the done-without-branch error, and leaves the env exactly
|
|
645
|
+
as if it were unconfigured (so `branches.prod` beside a materialized
|
|
646
|
+
`production` entry still aliases to one prod rung). Only a value that DIFFERS
|
|
647
|
+
from the default is deliberate configuration: it participates in the union
|
|
648
|
+
(blocking the alias when it introduces the other spelling) and stays
|
|
649
|
+
protected by the error below.
|
|
650
|
+
|
|
639
651
|
**Error catalog** (verbatim):
|
|
640
652
|
|
|
641
|
-
- `Invalid deploy configuration in <source>: a done status ("<status>") is configured for environment "<env>", but deploy.branches has no "<env>" entry. Add deploy.branches.<env> (the git branch that deploys to <env>) or remove "<env>" from the done map.`
|
|
653
|
+
- `Invalid deploy configuration in <source>: a done status ("<status>") is configured for environment "<env>", but deploy.branches has no "<env>" entry. Add deploy.branches.<env> (the git branch that deploys to <env>) or remove "<env>" from the done map.` (custom values only — default-identical entries fall back silently)
|
|
642
654
|
- `Invalid deploy.order in <source>: its environment names must exactly match the keys of deploy.branches. deploy.order has [<order-envs>]; deploy.branches has [<branch-envs>].` (also raised for duplicate `deploy.order` entries)
|
|
643
655
|
- `Invalid deploy.order in <source>: every entry must be an environment name string; found <entry>.`
|
|
644
656
|
- `Invalid deploy configuration in <source>: cannot order environment "<env>". Set deploy.order (environments listed lowest first, e.g. ["dev","staging","production"]) so Lisa knows the promotion order.`
|
|
@@ -32,6 +32,11 @@ jobs:
|
|
|
32
32
|
if: ${{ github.event_name != 'push' || !startsWith(github.event.head_commit.message, 'chore(release):') }}
|
|
33
33
|
runs-on: ubuntu-latest
|
|
34
34
|
timeout-minutes: 30
|
|
35
|
+
# Declaring the environment makes GitHub emit deployment /
|
|
36
|
+
# deployment_status events for this run — the substrate that
|
|
37
|
+
# deploy-status-sync listens to. No determine_environment job exists in
|
|
38
|
+
# this workflow; the ternary mirrors the APP_STAGE branch logic below.
|
|
39
|
+
environment: ${{ github.ref_name == 'main' && 'production' || github.ref_name }}
|
|
35
40
|
permissions:
|
|
36
41
|
id-token: write # needed to interact with GitHub's OIDC Token endpoint.
|
|
37
42
|
contents: read
|
|
@@ -149,6 +149,34 @@ an unprovisioned gate blocks nothing. Not yet wired for rails
|
|
|
149
149
|
(`release-rails.yml` doesn't thread approval inputs) or harper-fabric (no
|
|
150
150
|
release.yml call).
|
|
151
151
|
|
|
152
|
+
**Your deploy job declares a GitHub environment** (deploy-status-sync
|
|
153
|
+
substrate): the deploy job in this project's `deploy.yml` carries an
|
|
154
|
+
`environment:` declaration so every deploy run emits `deployment` /
|
|
155
|
+
`deployment_status` events — the substrate that deploy-status-sync (and
|
|
156
|
+
GitHub-for-Jira) listens to. Stacks with a `determine_environment` job reuse
|
|
157
|
+
its friendly-name resolution
|
|
158
|
+
(`needs.determine_environment.outputs.approval_environment`; unconfigured
|
|
159
|
+
branches degrade to the branch name, same as the approval gate); stacks
|
|
160
|
+
without one use the branch ternary
|
|
161
|
+
`github.ref_name == 'main' && 'production' || github.ref_name`. CDK projects
|
|
162
|
+
own their deploy job — declare the environment on it per the commented
|
|
163
|
+
snippet in the template `deploy.yml`. Exactly one deploy job per workflow
|
|
164
|
+
declares an environment (the job that mutates the target); release/build
|
|
165
|
+
bookkeeping jobs never do.
|
|
166
|
+
|
|
167
|
+
GitHub environment approvals are **per-job**. If your deploy job named the same
|
|
168
|
+
protected environment as the `release_approval` gate, an approval-gated run
|
|
169
|
+
would prompt you **twice**. To avoid that, on approval-gated runs
|
|
170
|
+
(`determine_environment` sets `require_approval`) the deploy job routes its
|
|
171
|
+
environment to `<env>-deploy` (`format('{0}-deploy', <env>)`) rather than the
|
|
172
|
+
bare env. Leave `<env>-deploy` **unprotected** (no required reviewers): the gate
|
|
173
|
+
fires once at `release_approval`, and the deploy job proceeds without a second
|
|
174
|
+
prompt. A gated run records two deployments — the gate against `<env>` and the
|
|
175
|
+
deploy job against `<env>-deploy` — and the `-deploy` suffix keeps the
|
|
176
|
+
`dev`/`staging`/`production` substring so GitHub-for-Jira still classifies it.
|
|
177
|
+
Ungated runs use the bare env; stacks without a `determine_environment` job
|
|
178
|
+
(rails, harper-fabric) are never gated and need no suffix.
|
|
179
|
+
|
|
152
180
|
**Blackout Periods** (configurable):
|
|
153
181
|
- Production: No weekends, no late nights (10 PM - 6 AM)
|
|
154
182
|
- Holiday blackouts: Dec 24 - Jan 2, Jul 3-5, Nov 27-29
|