@codyswann/lisa 3.56.0 → 3.59.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/{scripts → all/copy-overwrite/scripts}/check-conflict-markers.mjs +15 -8
- package/all/copy-overwrite/scripts/lib/gate-failure-diagnosis.mjs +92 -5
- package/all/copy-overwrite/scripts/lisa-gates.mjs +1015 -33
- package/all/copy-overwrite/scripts/lisa-reconcile-policy.mjs +4 -4
- package/all/copy-overwrite/scripts/lisa-run-gates.mjs +12 -2
- package/dist/cli/gate-report-upstream.d.ts +33 -4
- package/dist/cli/gate-report-upstream.d.ts.map +1 -1
- package/dist/cli/gate-report-upstream.js +69 -11
- package/dist/cli/gate-report-upstream.js.map +1 -1
- package/dist/cli/gate-report.d.ts.map +1 -1
- package/dist/cli/gate-report.js +2 -10
- package/dist/cli/gate-report.js.map +1 -1
- package/dist/cli/ui-ci-quality-jobs-compute.js +2 -2
- package/dist/cli/ui-ci-quality-jobs-compute.js.map +1 -1
- package/dist/cli/ui-github-repo-expected.js +1 -1
- package/dist/cli/ui-github-repo-expected.js.map +1 -1
- package/dist/configs/vitest/base.d.ts +16 -12
- package/dist/configs/vitest/base.d.ts.map +1 -1
- package/dist/configs/vitest/base.js +51 -0
- package/dist/configs/vitest/base.js.map +1 -1
- package/dist/configs/vitest/cdk.d.ts +2 -2
- package/dist/configs/vitest/cdk.d.ts.map +1 -1
- package/dist/configs/vitest/cdk.js +4 -2
- package/dist/configs/vitest/cdk.js.map +1 -1
- package/dist/configs/vitest/harper-fabric.d.ts +2 -2
- package/dist/configs/vitest/harper-fabric.d.ts.map +1 -1
- package/dist/configs/vitest/harper-fabric.js +4 -2
- package/dist/configs/vitest/harper-fabric.js.map +1 -1
- package/dist/configs/vitest/nestjs.d.ts +2 -2
- package/dist/configs/vitest/nestjs.d.ts.map +1 -1
- package/dist/configs/vitest/nestjs.js +4 -2
- package/dist/configs/vitest/nestjs.js.map +1 -1
- package/dist/configs/vitest/phaser.d.ts +2 -2
- package/dist/configs/vitest/phaser.d.ts.map +1 -1
- package/dist/configs/vitest/phaser.js +4 -2
- package/dist/configs/vitest/phaser.js.map +1 -1
- package/dist/configs/vitest/scratch-global-setup.d.ts +72 -0
- package/dist/configs/vitest/scratch-global-setup.d.ts.map +1 -0
- package/dist/configs/vitest/scratch-global-setup.js +168 -0
- package/dist/configs/vitest/scratch-global-setup.js.map +1 -0
- package/dist/configs/vitest/scratch-setup.d.ts +12 -0
- package/dist/configs/vitest/scratch-setup.d.ts.map +1 -0
- package/dist/configs/vitest/scratch-setup.js +70 -0
- package/dist/configs/vitest/scratch-setup.js.map +1 -0
- package/dist/configs/vitest/scratch.d.ts +192 -0
- package/dist/configs/vitest/scratch.d.ts.map +1 -0
- package/dist/configs/vitest/scratch.js +301 -0
- package/dist/configs/vitest/scratch.js.map +1 -0
- package/dist/configs/vitest/typescript.d.ts +2 -2
- package/dist/configs/vitest/typescript.d.ts.map +1 -1
- package/dist/configs/vitest/typescript.js +4 -2
- package/dist/configs/vitest/typescript.js.map +1 -1
- package/dist/core/lisa-owned-hash-ledger.d.ts.map +1 -1
- package/dist/core/lisa-owned-hash-ledger.js +28 -0
- package/dist/core/lisa-owned-hash-ledger.js.map +1 -1
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +35 -17
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/dist/migrations/ensure-seeded-gates.d.ts +47 -0
- package/dist/migrations/ensure-seeded-gates.d.ts.map +1 -0
- package/dist/migrations/ensure-seeded-gates.js +139 -0
- package/dist/migrations/ensure-seeded-gates.js.map +1 -0
- package/dist/migrations/index.d.ts +1 -0
- package/dist/migrations/index.d.ts.map +1 -1
- package/dist/migrations/index.js +3 -0
- package/dist/migrations/index.js.map +1 -1
- package/expo/copy-overwrite/scripts/bdd/baseline.mjs +36 -45
- package/expo/copy-overwrite/scripts/bdd/render.mjs +1 -1
- package/expo/copy-overwrite/scripts/check-bdd-coverage.mjs +0 -6
- package/package.json +2 -2
- 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-setup-sonar/SKILL.md +1 -1
- package/plugins/lisa/rules/reference/bdd-e2e-coverage.md +3 -3
- package/plugins/lisa/skills/lisa-setup-sonar/SKILL.md +1 -1
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-agy/skills/lisa-setup-sonar/SKILL.md +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/reference/bdd-e2e-coverage.md +3 -3
- package/plugins/lisa-copilot/skills/lisa-setup-sonar/SKILL.md +1 -1
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/rules/bdd-e2e-coverage-reference.mdc +3 -3
- package/plugins/lisa-cursor/skills/lisa-setup-sonar/SKILL.md +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/plugins/src/base/rules/reference/bdd-e2e-coverage.md +3 -3
- package/plugins/src/base/skills/lisa-setup-sonar/SKILL.md +1 -1
- package/typescript/copy-contents/.husky/pre-push +21 -0
- package/typescript/copy-overwrite/.prettierignore +1 -0
- package/typescript/copy-overwrite/scripts/check-skipped-required-checks.mjs +13 -6
- package/typescript/create-only/.github/required-checks.json +1 -1
- package/typescript/package-lisa/package.lisa.json +1 -0
- package/ui/index.html +2 -2
|
@@ -150,9 +150,9 @@ forces it upward, and lowering it needs no ceremony.
|
|
|
150
150
|
|
|
151
151
|
What stops coverage sliding backwards is checked directly, per obligation, against the base
|
|
152
152
|
revision — **an obligation that was mapped may not stop being mapped, and new behavior arrives
|
|
153
|
-
mapped or waived**. Giving coverage back is legitimate but takes
|
|
154
|
-
|
|
155
|
-
|
|
153
|
+
mapped or waived**. Giving coverage back is legitimate but takes a recorded route: a complete `retirements`
|
|
154
|
+
record (for a behavior the product no longer has) or a `platformWaivers` entry (for a runner
|
|
155
|
+
that cannot decide it). Gaps that predate the change are burndown, never a
|
|
156
156
|
gate failure — which is what lets a brownfield project adopt `enforced` without first backfilling
|
|
157
157
|
its whole history.
|
|
158
158
|
|
|
@@ -12,7 +12,7 @@ unattended factories run. It replaces Lisa's former hand-rolled SonarCloud REST
|
|
|
12
12
|
access with the vendor's official token-authed MCP, which is Lisa's single Sonar
|
|
13
13
|
substrate on both developer machines and headless cloud routines.
|
|
14
14
|
|
|
15
|
-
This does **not** touch the CI
|
|
15
|
+
This does **not** touch the CI static-security job in `quality.yml` or its
|
|
16
16
|
`SONAR_TOKEN` secret — that enforcement gate is separate and stays as-is.
|
|
17
17
|
|
|
18
18
|
## Supported agents
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.59.0",
|
|
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.
|
|
3
|
+
"version": "3.59.0",
|
|
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.
|
|
3
|
+
"version": "3.59.0",
|
|
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.
|
|
3
|
+
"version": "3.59.0",
|
|
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.
|
|
3
|
+
"version": "3.59.0",
|
|
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"
|
|
@@ -145,9 +145,9 @@ forces it upward, and lowering it needs no ceremony.
|
|
|
145
145
|
|
|
146
146
|
What stops coverage sliding backwards is checked directly, per obligation, against the base
|
|
147
147
|
revision — **an obligation that was mapped may not stop being mapped, and new behavior arrives
|
|
148
|
-
mapped or waived**. Giving coverage back is legitimate but takes
|
|
149
|
-
|
|
150
|
-
|
|
148
|
+
mapped or waived**. Giving coverage back is legitimate but takes a recorded route: a complete `retirements`
|
|
149
|
+
record (for a behavior the product no longer has) or a `platformWaivers` entry (for a runner
|
|
150
|
+
that cannot decide it). Gaps that predate the change are burndown, never a
|
|
151
151
|
gate failure — which is what lets a brownfield project adopt `enforced` without first backfilling
|
|
152
152
|
its whole history.
|
|
153
153
|
|
|
@@ -12,7 +12,7 @@ unattended factories run. It replaces Lisa's former hand-rolled SonarCloud REST
|
|
|
12
12
|
access with the vendor's official token-authed MCP, which is Lisa's single Sonar
|
|
13
13
|
substrate on both developer machines and headless cloud routines.
|
|
14
14
|
|
|
15
|
-
This does **not** touch the CI
|
|
15
|
+
This does **not** touch the CI static-security job in `quality.yml` or its
|
|
16
16
|
`SONAR_TOKEN` secret — that enforcement gate is separate and stays as-is.
|
|
17
17
|
|
|
18
18
|
## Supported agents
|
|
@@ -55,6 +55,25 @@ do
|
|
|
55
55
|
done
|
|
56
56
|
unset LISA_GATE_REGISTRY_CANDIDATE
|
|
57
57
|
|
|
58
|
+
# Say, once, which properties the built-in steps below are about to prove with a
|
|
59
|
+
# command written into this file that no declaration governs.
|
|
60
|
+
#
|
|
61
|
+
# REPORT ONLY, and deliberately so. On essentially every installed project the
|
|
62
|
+
# written-in path is the DEFAULT rather than the exception — nothing seeds a
|
|
63
|
+
# `gates` block into a consumer — so a reporter that could fail a push would be
|
|
64
|
+
# a new gate nobody declared. The order this has to happen in is: guarantee a
|
|
65
|
+
# declaration exists (`lisa-gates.mjs seed`), THEN make an absent one a hard
|
|
66
|
+
# failure. Deleting the built-in before either would be worse than both: a
|
|
67
|
+
# required context that runs zero steps reports GREEN.
|
|
68
|
+
#
|
|
69
|
+
# Never changes the exit status. `|| true` covers a resolver that cannot run,
|
|
70
|
+
# and the whole call is skipped when no resolver was found.
|
|
71
|
+
lisa_report_unconfigured() {
|
|
72
|
+
[ -n "$GATE_REGISTRY" ] || return 0
|
|
73
|
+
node "$GATE_REGISTRY" unconfigured --moment=push --surface=pre-push-hook || true
|
|
74
|
+
return 0
|
|
75
|
+
}
|
|
76
|
+
|
|
58
77
|
# Nothing here discards stderr. A resolver that failed and a project that
|
|
59
78
|
# declared nothing produce the same empty answer, and both send this hook to the
|
|
60
79
|
# built-in step — which is the safe direction — but only one of them is a
|
|
@@ -181,6 +200,8 @@ lisa_gate_covers() {
|
|
|
181
200
|
return 0
|
|
182
201
|
}
|
|
183
202
|
|
|
203
|
+
lisa_report_unconfigured
|
|
204
|
+
|
|
184
205
|
# BEGIN: built-in checks — the pre-registry path, kept step for step so a
|
|
185
206
|
# project without a `gates` block behaves exactly as it did before.
|
|
186
207
|
|
|
@@ -64,6 +64,7 @@ amplify
|
|
|
64
64
|
# *.sh rule above. All no-ops for projects without these files.
|
|
65
65
|
scripts/bdd-matrix.mjs
|
|
66
66
|
scripts/check-bdd-coverage.mjs
|
|
67
|
+
scripts/check-conflict-markers.mjs
|
|
67
68
|
scripts/check-e2e-coverage.mjs
|
|
68
69
|
scripts/check-nightly-e2e-health.mjs
|
|
69
70
|
scripts/check-skipped-required-checks.mjs
|
|
@@ -170,12 +170,19 @@
|
|
|
170
170
|
* ## Exact string equality, everywhere
|
|
171
171
|
*
|
|
172
172
|
* Every comparison here is `===`. Repos routinely carry confusable pairs — an
|
|
173
|
-
* external app's
|
|
174
|
-
*
|
|
175
|
-
* `🐢 Slow Lint Rules`, whose skip tokens `lint`
|
|
176
|
-
* prefix pair. A `includes` / `startsWith` /
|
|
177
|
-
* false positive on a legitimate skip, and the
|
|
178
|
-
* to delete the guard.
|
|
173
|
+
* external app's REQUIRED `GitGuardian Security Checks` beside a skippable,
|
|
174
|
+
* not-required in-workflow `🔐 Credential Leakage` that proves the same
|
|
175
|
+
* property; `🧹 Lint` beside `🐢 Slow Lint Rules`, whose skip tokens `lint`
|
|
176
|
+
* and `lint_slow` are a strict prefix pair. A `includes` / `startsWith` /
|
|
177
|
+
* case-folded match would report a false positive on a legitimate skip, and the
|
|
178
|
+
* natural fix for a false alarm is to delete the guard.
|
|
179
|
+
*
|
|
180
|
+
* The example this used to give — `SonarCloud Code Analysis` beside
|
|
181
|
+
* `🔍 SonarCloud SAST` — stopped being confusable when that job was renamed
|
|
182
|
+
* to `🔍 Static Security Analysis`. Two strings colliding because both named
|
|
183
|
+
* the same vendor is the failure mode the naming ruling removes; two strings
|
|
184
|
+
* colliding because one is a prefix of the other is not, which is why the
|
|
185
|
+
* remaining examples are the ones kept.
|
|
179
186
|
*
|
|
180
187
|
* Lisa's `quality.yml` used to carry the worst pair of all — a NOT-required
|
|
181
188
|
* `🧪 Run Tests` beside the required `🧪 Run Unit Tests` — and it merged red on
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"Why it matters: GitHub counts a SKIPPED required status check as SATISFIED. A job named in `skip_jobs` still reports green against its required context having run zero steps, so the merge gate can never be red and therefore can never block anything.",
|
|
6
6
|
"⚠️ `required_contexts` SHIPS EMPTY AND UNSTAMPED ON PURPOSE. Lisa cannot know what YOUR ruleset requires, and an earlier version of this seed shipped a guess that was measured WRONG (#2476): it claimed `🔗 Work-Item Traceability` was required when no ruleset required it, and omitted six contexts that were. Until `ruleset.baseline_fetched_at` carries the date you transcribed the real list, the guard reports NOT CHECKED rather than answering from fiction.",
|
|
7
7
|
"To arm it: gh api repos/OWNER/NAME/rulesets --jq '.[] | \"\\(.id) \\(.name)\"' to find the ids, then gh api repos/OWNER/NAME/rulesets/ID --jq '.rules[] | select(.type==\"required_status_checks\") | .parameters.required_status_checks[].context' for the contexts. Paste them into `required_contexts` BYTE FOR BYTE (emoji and the ' / ' separator included), fill in `ruleset.repo` / `ruleset.ids`, and set `baseline_fetched_at` to today.",
|
|
8
|
-
"The guard compares with exact string equality on purpose: a repo routinely carries confusable pairs (an external app's required `
|
|
8
|
+
"The guard compares with exact string equality on purpose: a repo routinely carries confusable pairs (an external app's required `GitGuardian Security Checks` beside a skippable, not-required `🔐 Credential Leakage` proving the same property; `🧹 Lint` beside `🐢 Slow Lint Rules`, whose skip tokens `lint` and `lint_slow` are a strict prefix pair), and a fuzzy match would raise a false alarm whose obvious fix is to delete the guard.",
|
|
9
9
|
"The worst confusable pair Lisa ever shipped was a NOT-required `🧪 Run Tests` beside the required `🧪 Run Unit Tests` — it merged red on two PRs because 'Run Tests failed' reads like the required test gate failing. It was DELETED in #2485, not renamed, because it only re-ran what the two coverage-carrying required contexts already run. If you find a near-duplicate advisory check in your own roster, prefer deleting it over trusting a reader to tell three similar names apart.",
|
|
10
10
|
"A transcription expires after 90 days, because a ruleset can be edited with no signal in this repository. The shipped `.github/workflows/required-checks-drift.yml` runs `--remote` weekly to catch that; `--remote` reads the ruleset live and so answers even when the cache is untrusted.",
|
|
11
11
|
"Lisa's quality.yml runs the offline arm on every pull request. This seed ships `\"enforcement\": \"warn\"`, which downgrades findings AND the NOT-CHECKED refusal to reports so a fresh install does not go red on arrival. Delete the key once you have transcribed the list — then it blocks.",
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
"check:vacuous-required-checks": "node scripts/check-skipped-required-checks.mjs",
|
|
26
26
|
"test:node": "node scripts/lisa-test-node.mjs",
|
|
27
27
|
"check:work-item": "node scripts/lisa-work-item.mjs validate-pr",
|
|
28
|
+
"check:conflict-markers": "node scripts/check-conflict-markers.mjs",
|
|
28
29
|
"check:work-item:push": "node scripts/lisa-work-item.mjs validate-push"
|
|
29
30
|
},
|
|
30
31
|
"devDependencies": {
|
package/ui/index.html
CHANGED
|
@@ -9790,7 +9790,7 @@
|
|
|
9790
9790
|
},
|
|
9791
9791
|
],
|
|
9792
9792
|
[
|
|
9793
|
-
{ t: "mono", v: "🔍
|
|
9793
|
+
{ t: "mono", v: "🔍 Static Security Analysis" },
|
|
9794
9794
|
{ t: "text", v: "Static analysis via SonarCloud" },
|
|
9795
9795
|
{
|
|
9796
9796
|
t: "status",
|
|
@@ -10178,7 +10178,7 @@
|
|
|
10178
10178
|
],
|
|
10179
10179
|
[
|
|
10180
10180
|
{ t: "mono", v: "SONAR_TOKEN" },
|
|
10181
|
-
{ t: "text", v: "
|
|
10181
|
+
{ t: "text", v: "Static Security Analysis" },
|
|
10182
10182
|
{ t: "badge", v: "set", cls: "on" },
|
|
10183
10183
|
],
|
|
10184
10184
|
[
|