@skillcap/gdh 0.12.0 → 0.13.1
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/INSTALL-BUNDLE.json +1 -1
- package/README.md +4 -4
- package/RELEASE-SPAN-UPDATE-CONTRACTS.json +127 -0
- package/node_modules/@gdh/adapters/dist/index.d.ts.map +1 -1
- package/node_modules/@gdh/adapters/dist/index.js +42 -3
- package/node_modules/@gdh/adapters/dist/index.js.map +1 -1
- package/node_modules/@gdh/adapters/package.json +8 -8
- package/node_modules/@gdh/authoring/dist/lsp.d.ts.map +1 -1
- package/node_modules/@gdh/authoring/dist/lsp.js +4 -0
- package/node_modules/@gdh/authoring/dist/lsp.js.map +1 -1
- package/node_modules/@gdh/authoring/dist/prepare.d.ts.map +1 -1
- package/node_modules/@gdh/authoring/dist/prepare.js +37 -11
- package/node_modules/@gdh/authoring/dist/prepare.js.map +1 -1
- package/node_modules/@gdh/authoring/dist/project.js +1 -1
- package/node_modules/@gdh/authoring/dist/project.js.map +1 -1
- package/node_modules/@gdh/authoring/package.json +2 -2
- package/node_modules/@gdh/cli/dist/index.js +4 -4
- package/node_modules/@gdh/cli/dist/index.js.map +1 -1
- package/node_modules/@gdh/cli/dist/migrate.d.ts +7 -0
- package/node_modules/@gdh/cli/dist/migrate.d.ts.map +1 -1
- package/node_modules/@gdh/cli/dist/migrate.js +13 -0
- package/node_modules/@gdh/cli/dist/migrate.js.map +1 -1
- package/node_modules/@gdh/cli/package.json +10 -10
- package/node_modules/@gdh/core/dist/godot-stderr-fatality.d.ts +10 -0
- package/node_modules/@gdh/core/dist/godot-stderr-fatality.d.ts.map +1 -0
- package/node_modules/@gdh/core/dist/godot-stderr-fatality.js +52 -0
- package/node_modules/@gdh/core/dist/godot-stderr-fatality.js.map +1 -0
- package/node_modules/@gdh/core/dist/index.d.ts +14 -1
- package/node_modules/@gdh/core/dist/index.d.ts.map +1 -1
- package/node_modules/@gdh/core/dist/index.js +2 -1
- package/node_modules/@gdh/core/dist/index.js.map +1 -1
- package/node_modules/@gdh/core/package.json +1 -1
- package/node_modules/@gdh/docs/dist/guidance.d.ts.map +1 -1
- package/node_modules/@gdh/docs/dist/guidance.js +11 -0
- package/node_modules/@gdh/docs/dist/guidance.js.map +1 -1
- package/node_modules/@gdh/docs/package.json +2 -2
- package/node_modules/@gdh/mcp/package.json +8 -8
- package/node_modules/@gdh/observability/dist/runtime-bundles.js +9 -9
- package/node_modules/@gdh/observability/dist/runtime-bundles.js.map +1 -1
- package/node_modules/@gdh/observability/package.json +2 -2
- package/node_modules/@gdh/runtime/dist/bridge-surface.js +157 -2
- package/node_modules/@gdh/runtime/dist/bridge-surface.js.map +1 -1
- package/node_modules/@gdh/runtime/dist/index.d.ts.map +1 -1
- package/node_modules/@gdh/runtime/dist/index.js +11 -41
- package/node_modules/@gdh/runtime/dist/index.js.map +1 -1
- package/node_modules/@gdh/runtime/package.json +2 -2
- package/node_modules/@gdh/scan/package.json +3 -3
- package/node_modules/@gdh/verify/dist/readiness.js +5 -5
- package/node_modules/@gdh/verify/dist/readiness.js.map +1 -1
- package/node_modules/@gdh/verify/dist/scenarios.d.ts.map +1 -1
- package/node_modules/@gdh/verify/dist/scenarios.js +95 -9
- package/node_modules/@gdh/verify/dist/scenarios.js.map +1 -1
- package/node_modules/@gdh/verify/package.json +7 -7
- package/package.json +11 -11
package/INSTALL-BUNDLE.json
CHANGED
package/README.md
CHANGED
|
@@ -12,10 +12,10 @@ GDH detects your Godot project, configures your AI agents, and gives them the co
|
|
|
12
12
|
## Install
|
|
13
13
|
|
|
14
14
|
```sh
|
|
15
|
-
npx -y @skillcap/gdh@0.
|
|
15
|
+
npx -y @skillcap/gdh@0.13.1 setup
|
|
16
16
|
```
|
|
17
17
|
|
|
18
|
-
Replace `0.
|
|
18
|
+
Replace `0.13.1` with the GDH version you want to pin this project to. `gdh setup` records the pinned version in `.gdh/project.yaml`; every managed surface generated from that config invokes GDH at that exact pinned version, so future sessions stay reproducible.
|
|
19
19
|
|
|
20
20
|
From `0.9.0` onward, the shipped package also carries bounded release-span update metadata in `RELEASE-SPAN-UPDATE-CONTRACTS.json` so update flows can explain release-specific migration steps without reading repo-only `docs/releases/` files at target runtime.
|
|
21
21
|
|
|
@@ -36,7 +36,7 @@ The full install and update contract lives in [install-and-update.md](docs/devel
|
|
|
36
36
|
|
|
37
37
|
```sh
|
|
38
38
|
# 1. Run setup in your Godot project
|
|
39
|
-
npx -y @skillcap/gdh@0.
|
|
39
|
+
npx -y @skillcap/gdh@0.13.1 setup
|
|
40
40
|
|
|
41
41
|
# 2. Open your AI agent (Claude, Cursor, Codex) in the repo
|
|
42
42
|
|
|
@@ -101,7 +101,7 @@ The CLI exists for advanced operators, debugging, and automation. Update preview
|
|
|
101
101
|
|
|
102
102
|
## Status
|
|
103
103
|
|
|
104
|
-
GDH now ships the current `0.
|
|
104
|
+
GDH now ships the current `0.13.1` release line and remains ready for broader internal use within the documented support contract. The current release line is `0.13.1` at the `broader_internal_release` stage.
|
|
105
105
|
That line includes one first-class Docker-backed rendered runtime provider and bounded screenshot evidence on rendered-capable paths.
|
|
106
106
|
|
|
107
107
|
The release-stage label applies only to the documented support window in [runtime-support-matrix.md](docs/development/runtime-support-matrix.md) and [runtime-release-readiness.md](docs/development/runtime-release-readiness.md). It is not a blanket claim that every Godot project shape is supported or that this implementation checkout should behave like a GDH-managed target repo.
|
|
@@ -712,6 +712,133 @@
|
|
|
712
712
|
}
|
|
713
713
|
]
|
|
714
714
|
}
|
|
715
|
+
},
|
|
716
|
+
{
|
|
717
|
+
"version": "0.13.0",
|
|
718
|
+
"releaseTag": "v0.13.0",
|
|
719
|
+
"migrationStatus": "required",
|
|
720
|
+
"summary": "v0.13.0 expands the bounded runtime bridge with raw key-event and direct UI-control routes, hardens runtime-verification terminology and evidence, and exposes more operational authoring-status truth. Targets without the GDH runtime bridge stay on the standard post-update path, but bridge-enabled targets moving from the older managed bridge surface need release-specific bridge repair plus plugin-registration follow-through so the managed bridge files align with surface version 3.",
|
|
721
|
+
"releaseHighlights": {
|
|
722
|
+
"summary": "v0.13.0 makes GDH's runtime-verification surface less fake and more operable. The managed runtime bridge now covers one bounded raw-input route plus three bounded direct UI-control routes, public runtime-verification terminology and evidence surfaces stay closer to the shipped vocabulary, and authoring status output exposes more machine-local truth about detected projects and managed LSP readiness.",
|
|
723
|
+
"operatorChanges": [
|
|
724
|
+
"**Bounded bridge interaction expands beyond action-state input.** The managed runtime bridge surface now ships `input.event.send`, `ui.button.press`, `ui.line_edit.text.set`, and `ui.range.value.set`, giving GDH one controlled raw-key-event path and three direct UI-control paths for practical verification flows that action-state input alone could not cover.",
|
|
725
|
+
"**Bridge-enabled targets now surface the updated managed bridge contract explicitly.** The bridge manifest and managed bridge files now move to surface version `3`, so status and repair flows describe the release-specific bridge drift honestly instead of leaving targets on the older entry inventory.",
|
|
726
|
+
"**Authoring status surfaces expose more operational truth.** `gdh status`, `gdh lsp status`, `gdh target prepare`, and `gdh migrate` now report detected projects, machine-local `authoring.lsp` operational availability, managed LSP validation mode, clearer import-refresh summaries, and migration action counts that are easier for agents and operators to follow.",
|
|
727
|
+
"**Runtime-verification language stays closer to shipped public terms.** Guidance and verification surfaces now reinforce the public `run configuration` / `verification scenario` / `runtime bridge entry` vocabulary instead of leaking older internal terminology where the public contract already exists."
|
|
728
|
+
]
|
|
729
|
+
},
|
|
730
|
+
"updateContract": {
|
|
731
|
+
"summary": "Bridge-enabled targets need release-specific bridge repair and plugin-registration follow-through after self-update because the managed runtime bridge surface moved to version 3; targets without the GDH runtime bridge stay on the standard verification path.",
|
|
732
|
+
"steps": [
|
|
733
|
+
{
|
|
734
|
+
"id": "verify_post_update_status",
|
|
735
|
+
"kind": "mechanical",
|
|
736
|
+
"summary": "Run the standard post-update health check.",
|
|
737
|
+
"detail": "Start with the normal drift and status checks so GDH can tell you whether the target stayed healthy or entered the runtime-bridge repair branch for the v0.13.0 surface update.",
|
|
738
|
+
"commands": [
|
|
739
|
+
"gdh verify drift"
|
|
740
|
+
],
|
|
741
|
+
"validationCommands": [
|
|
742
|
+
"gdh status"
|
|
743
|
+
]
|
|
744
|
+
},
|
|
745
|
+
{
|
|
746
|
+
"id": "inspect_runtime_bridge_follow_through",
|
|
747
|
+
"kind": "agent_reasoning",
|
|
748
|
+
"summary": "Decide whether the target still carries the older runtime bridge surface.",
|
|
749
|
+
"detail": "If `gdh status` or the self-update terminal surfaces `runtime_bridge_*` reasons, treat that as the v0.13.0 release-specific branch. The new raw-input and UI-control entries only affect bridge-enabled targets; non-bridge targets do not need this branch.",
|
|
750
|
+
"commands": [
|
|
751
|
+
"gdh bridge status"
|
|
752
|
+
],
|
|
753
|
+
"validationCommands": [
|
|
754
|
+
"gdh status"
|
|
755
|
+
]
|
|
756
|
+
},
|
|
757
|
+
{
|
|
758
|
+
"id": "repair_bridge_and_finish_registration",
|
|
759
|
+
"kind": "manual_review",
|
|
760
|
+
"summary": "Repair the managed bridge files and finish GDHBridge registration.",
|
|
761
|
+
"detail": "Bridge-enabled targets on the older surface need `gdh bridge repair`, then the `GDH Runtime Bridge` plugin must be enabled in the Godot editor so the `GDHBridge` autoload registers again. After that follow-through, rerun the normal validation path and confirm the target returns to a healthy state.",
|
|
762
|
+
"commands": [
|
|
763
|
+
"gdh bridge repair"
|
|
764
|
+
],
|
|
765
|
+
"validationCommands": [
|
|
766
|
+
"gdh bridge status",
|
|
767
|
+
"gdh status"
|
|
768
|
+
]
|
|
769
|
+
}
|
|
770
|
+
]
|
|
771
|
+
}
|
|
772
|
+
},
|
|
773
|
+
{
|
|
774
|
+
"version": "0.13.1",
|
|
775
|
+
"releaseTag": "v0.13.1",
|
|
776
|
+
"migrationStatus": "required",
|
|
777
|
+
"summary": "v0.13.1 fixes the malformed managed runtime-bridge plugin.cfg script path shipped in v0.13.0 and stops authoring import refresh from treating exit-0 Godot runs with fatal stderr as successful hydration. Targets without the GDH runtime bridge stay on the standard post-update verification path, but bridge-enabled targets carrying the broken v0.13.0 generated plugin.cfg may need one release-specific bridge repair so the managed bridge files match the shipped patch line.",
|
|
778
|
+
"releaseHighlights": {
|
|
779
|
+
"summary": "v0.13.1 is a dogfooding-driven patch release. It fixes the malformed runtime-bridge `plugin.cfg` script path shipped in v0.13.0 and stops `gdh target prepare` / `gdh imports refresh` from treating exit-`0` Godot import passes with fatal stderr as successful hydration.",
|
|
780
|
+
"operatorChanges": [
|
|
781
|
+
"**Managed bridge plugin config now loads correctly.** GDH now writes `addons/gdh_bridge/plugin.cfg` with `script=\"plugin.gd\"` instead of the malformed absolute addon path that Godot re-prefixed into `res://addons/gdh_bridge/res:/addons/gdh_bridge/plugin.gd`.",
|
|
782
|
+
"**Authoring import refresh no longer reports false success on noisy exit-`0` Godot runs.** `gdh target prepare`, `gdh imports refresh`, and the shared Godot stderr evaluator now treat fatal engine stderr as blocking evidence even when the process exits cleanly.",
|
|
783
|
+
"**Authoring guidance now points operators at the real evidence.** When import refresh blocks on exit `0`, the generated guidance tells agents and operators to inspect `importRefresh.processOutput.stderr` instead of assuming the import pass was healthy."
|
|
784
|
+
]
|
|
785
|
+
},
|
|
786
|
+
"updateContract": {
|
|
787
|
+
"summary": "Bridge-enabled targets carrying the broken v0.13.0 managed plugin.cfg may need one release-specific bridge repair after self-update; targets without the GDH runtime bridge stay on the standard verification path, and import-refresh failures now surface fatal Godot stderr as blocking evidence instead of false hydration.",
|
|
788
|
+
"steps": [
|
|
789
|
+
{
|
|
790
|
+
"id": "verify_post_update_status",
|
|
791
|
+
"kind": "mechanical",
|
|
792
|
+
"summary": "Run the normal post-update verification path.",
|
|
793
|
+
"detail": "Start with the standard drift and status checks so GDH can tell you whether the target stayed healthy or entered the narrow v0.13.1 bridge-repair branch.",
|
|
794
|
+
"commands": [
|
|
795
|
+
"gdh verify drift"
|
|
796
|
+
],
|
|
797
|
+
"validationCommands": [
|
|
798
|
+
"gdh status"
|
|
799
|
+
]
|
|
800
|
+
},
|
|
801
|
+
{
|
|
802
|
+
"id": "inspect_bridge_and_authoring_follow_through",
|
|
803
|
+
"kind": "agent_reasoning",
|
|
804
|
+
"summary": "Decide whether the target actually needs the v0.13.1 bridge-repair branch.",
|
|
805
|
+
"detail": "If the target uses the GDH runtime bridge and `gdh status` or `gdh bridge status` surfaces runtime-bridge drift, take the repair branch below. If authoring import refresh now blocks after an exit-0 Godot run, inspect `importRefresh.processOutput.stderr`; v0.13.1 treats fatal Godot stderr as blocking evidence on purpose.",
|
|
806
|
+
"commands": [
|
|
807
|
+
"gdh bridge status",
|
|
808
|
+
"gdh authoring check"
|
|
809
|
+
],
|
|
810
|
+
"validationCommands": [
|
|
811
|
+
"gdh status"
|
|
812
|
+
]
|
|
813
|
+
},
|
|
814
|
+
{
|
|
815
|
+
"id": "repair_broken_bridge_plugin_cfg",
|
|
816
|
+
"kind": "mechanical",
|
|
817
|
+
"summary": "Repair the managed bridge files when the target still carries the broken plugin.cfg.",
|
|
818
|
+
"detail": "Bridge-enabled targets carrying the malformed v0.13.0 generated plugin.cfg need `gdh bridge repair` so GDH rewrites the managed bridge files with the corrected `script=\"plugin.gd\"` entry. Targets without bridge drift do not need this step.",
|
|
819
|
+
"commands": [
|
|
820
|
+
"gdh bridge repair"
|
|
821
|
+
],
|
|
822
|
+
"validationCommands": [
|
|
823
|
+
"gdh bridge status",
|
|
824
|
+
"gdh status"
|
|
825
|
+
]
|
|
826
|
+
},
|
|
827
|
+
{
|
|
828
|
+
"id": "finish_plugin_registration_if_still_missing",
|
|
829
|
+
"kind": "manual_review",
|
|
830
|
+
"summary": "Only if needed, let Godot register `GDHBridge` after repair.",
|
|
831
|
+
"detail": "If `gdh bridge status` still reports `runtime_bridge_plugin_enable_required` after repair, open the project in Godot and ensure the `GDH Runtime Bridge` plugin is enabled so it can register `GDHBridge`. Do not assume the plugin needs re-enabling on every target; only take this step when status still says the autoload is missing.",
|
|
832
|
+
"commands": [
|
|
833
|
+
"gdh bridge status"
|
|
834
|
+
],
|
|
835
|
+
"validationCommands": [
|
|
836
|
+
"gdh bridge status",
|
|
837
|
+
"gdh status"
|
|
838
|
+
]
|
|
839
|
+
}
|
|
840
|
+
]
|
|
841
|
+
}
|
|
715
842
|
}
|
|
716
843
|
]
|
|
717
844
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA8BA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,11 +9,11 @@ import { CLAUDE_CHECK_UPDATE_HOOK_RELATIVE_PATH, CLAUDE_CHECK_UPDATE_WORKER_RELA
|
|
|
9
9
|
import { renderClaudeCheckUpdateWorker } from "./claude-update-worker-render.js";
|
|
10
10
|
import { CLAUDE_STATUSLINE_RELATIVE_PATH, renderClaudeUpdateStatusline, } from "./claude-statusline-render.js";
|
|
11
11
|
import { CLAUDE_SETTINGS_RELATIVE_PATH, patchClaudeSettingsForGdhSessionStart, patchClaudeSettingsForGdhStatusline, } from "./claude-settings-patch.js";
|
|
12
|
-
import { GDH_AGENT_CONTRACT_VERSION, GDH_CURSOR_RULE_VERSION, GDH_GUIDANCE_INDEX_VERSION, GDH_GUIDANCE_UNIT_VERSION, GDH_PROJECT_CONFIG_VERSION, GDH_RECIPE_SCHEMA_VERSION, GDH_RULES_SCHEMA_VERSION, GDH_SCENARIO_SCHEMA_VERSION, assertProjectLifecycleCompatibilityInvariant, definePackageBoundary, resolveCurrentGdhInstall, resolveGdhProductMetadata, } from "@gdh/core";
|
|
12
|
+
import { GDH_AGENT_CONTRACT_VERSION, GDH_CURSOR_RULE_VERSION, GDH_GUIDANCE_INDEX_VERSION, GDH_GUIDANCE_UNIT_VERSION, GDH_PROJECT_CONFIG_VERSION, GDH_RECIPE_SCHEMA_VERSION, GDH_RULES_SCHEMA_VERSION, GDH_SCENARIO_SCHEMA_VERSION, assertProjectLifecycleCompatibilityInvariant, definePackageBoundary, resolveCurrentGdhInstall, resolveConfiguredGodotEditorBin, resolveGdhProductMetadata, } from "@gdh/core";
|
|
13
13
|
import { createDefaultGuidanceUnits, getGuidanceStatus, resolveGuidanceQuery, resolveRecoveryHints, } from "@gdh/docs";
|
|
14
14
|
import { inspectGuidanceAudit } from "@gdh/observability";
|
|
15
15
|
import { inspectRuntimeBridgeSurface } from "@gdh/runtime";
|
|
16
|
-
import {
|
|
16
|
+
import { readInventoryCacheOrScan } from "@gdh/scan";
|
|
17
17
|
import { evaluateDonePolicy, recommendValidationForChange } from "@gdh/verify";
|
|
18
18
|
export const adaptersPackage = definePackageBoundary({
|
|
19
19
|
name: "@gdh/adapters",
|
|
@@ -228,8 +228,12 @@ export async function buildGdhStatusResult(targetPath) {
|
|
|
228
228
|
const context = await buildAuthoringContext(targetPath);
|
|
229
229
|
const projectLifecycle = await inspectProjectLifecycleCompatibility(targetPath);
|
|
230
230
|
const recoveryHints = resolveRecoveryHints(projectLifecycle.reasons);
|
|
231
|
+
const capabilities = await addOperationalCapabilityStatus(context.status.capabilities, context.status.targetPath);
|
|
232
|
+
const detectedProjects = summarizeDetectedProjects(context.inventory.projects, context.status.primaryProjectPath);
|
|
231
233
|
return {
|
|
232
234
|
...context.status,
|
|
235
|
+
capabilities,
|
|
236
|
+
detectedProjects,
|
|
233
237
|
product: resolveGdhProductMetadata(),
|
|
234
238
|
projectLifecycle,
|
|
235
239
|
recoveryHints,
|
|
@@ -3498,7 +3502,8 @@ function dedupe(values) {
|
|
|
3498
3502
|
async function buildAuthoringContext(targetPath) {
|
|
3499
3503
|
const resolvedRoot = await resolveProjectRoot(targetPath);
|
|
3500
3504
|
const effectiveTargetPath = resolvedRoot ?? targetPath;
|
|
3501
|
-
const
|
|
3505
|
+
const inventoryResult = await readInventoryCacheOrScan(effectiveTargetPath);
|
|
3506
|
+
const inventory = inventoryResult.inventory;
|
|
3502
3507
|
const projectConfig = await readProjectConfig(effectiveTargetPath);
|
|
3503
3508
|
const worktreeState = await readWorktreeState(effectiveTargetPath);
|
|
3504
3509
|
const status = resolveAuthoringStatus({
|
|
@@ -3514,6 +3519,40 @@ async function buildAuthoringContext(targetPath) {
|
|
|
3514
3519
|
status,
|
|
3515
3520
|
};
|
|
3516
3521
|
}
|
|
3522
|
+
async function addOperationalCapabilityStatus(capabilities, targetPath) {
|
|
3523
|
+
const godotEditorBin = await resolveConfiguredGodotEditorBin({ targetPath });
|
|
3524
|
+
return capabilities.map((capability) => {
|
|
3525
|
+
if (capability.id !== "authoring.lsp" || capability.availability !== "available") {
|
|
3526
|
+
return capability;
|
|
3527
|
+
}
|
|
3528
|
+
if (godotEditorBin !== null) {
|
|
3529
|
+
return {
|
|
3530
|
+
...capability,
|
|
3531
|
+
operationalAvailability: "available",
|
|
3532
|
+
operationalReason: null,
|
|
3533
|
+
operationalSummary: "Machine-local Godot editor path is configured, so managed authoring.lsp can launch or reuse an instance.",
|
|
3534
|
+
};
|
|
3535
|
+
}
|
|
3536
|
+
return {
|
|
3537
|
+
...capability,
|
|
3538
|
+
operationalAvailability: "unavailable",
|
|
3539
|
+
operationalReason: "godot_editor_not_configured",
|
|
3540
|
+
operationalSummary: "Managed authoring.lsp is enabled for this target, but no machine-local Godot editor path is configured yet.",
|
|
3541
|
+
};
|
|
3542
|
+
});
|
|
3543
|
+
}
|
|
3544
|
+
function summarizeDetectedProjects(projects, primaryProjectPath) {
|
|
3545
|
+
return projects.map((project) => {
|
|
3546
|
+
const primary = project.relativePath === primaryProjectPath;
|
|
3547
|
+
return {
|
|
3548
|
+
relativePath: project.relativePath,
|
|
3549
|
+
name: project.name,
|
|
3550
|
+
placement: project.placement,
|
|
3551
|
+
primary,
|
|
3552
|
+
primaryReason: primary ? "configured_primary_project_path" : null,
|
|
3553
|
+
};
|
|
3554
|
+
});
|
|
3555
|
+
}
|
|
3517
3556
|
function deriveRepoState(context) {
|
|
3518
3557
|
const repoState = new Set();
|
|
3519
3558
|
if (context.projectConfig !== null) {
|