Skip to content

fix(schema): stop commas truncating jsonschema description tags#6036

Open
devantler wants to merge 11 commits into
mainfrom
claude/jsonschema-desc-commas
Open

fix(schema): stop commas truncating jsonschema description tags#6036
devantler wants to merge 11 commits into
mainfrom
claude/jsonschema-desc-commas

Conversation

@devantler

@devantler devantler commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

🤖 Generated by the Daily AI Engineer

Why

Commas inside inline schema descriptions were silently truncating what users see in IDE hovers, the docs configuration reference, and the web UI types — four fields shipped with cut-off text, and any future comma would do the same.

What

Moves every inline description to the dedicated comma-safe tag (30 fields), restoring the four truncated descriptions verbatim in all regenerated artifacts, and adds a guard test so the whole class cannot recur.

Fixes #6035

jsonschema struct-tag options are comma-separated, so a raw comma inside
description= silently cut four field descriptions in the published
schema, the generated config reference (breaking its Markdown tables),
and the TS types. Reword the four comma-free, regenerate all four
artifacts, and add a source-scan regression test that fails on any
severed tag piece.
@devantler

Copy link
Copy Markdown
Contributor Author

🤖 Generated by the Daily AI Engineer

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 10, 2026

Copy link
Copy Markdown

@devantler I'll review the changes now.

✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai

coderabbitai Bot commented Jul 10, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

You’ve reached a temporary PR review limit under our Fair Usage Limits Policy.

Your recent review volume is higher than typical usage, so adaptive limits are currently applied.

Next review available in: 42 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 6111e39a-5d6f-49f0-bb5a-e23d00d1cebb

📥 Commits

Reviewing files that changed from the base of the PR and between e6604f1 and 1413e42.

⛔ Files ignored due to path filters (1)
  • web/ui/src/generated/ksail-config.ts is excluded by !**/generated/**
📒 Files selected for processing (7)
  • charts/ksail-operator/crds/ksail.io_clusters.yaml
  • docs/src/content/docs/configuration/declarative-configuration.mdx
  • pkg/apis/cluster/v1alpha1/autoscaler.go
  • pkg/apis/cluster/v1alpha1/jsonschematag_test.go
  • pkg/apis/cluster/v1alpha1/types.go
  • pkg/svc/chat/docs_generated.go
  • schemas/ksail-config.schema.json
📝 Walkthrough

Walkthrough

Migrated JSON schema field descriptions across cluster API types to dedicated jsonschema_description tags while preserving numeric constraints. Added AST-based regression checks for malformed or comma-truncated descriptions. Updated the generated configuration schema and declarative configuration documentation with complete descriptions for distribution configuration, boolean aliases, and autoscaler expander strategies.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly matches the main change: fixing comma-truncation in jsonschema description tags.
Description check ✅ Passed The description is directly about the same schema-description truncation fix and the regression test.
Linked Issues check ✅ Passed The PR updates the affected descriptions, regenerates schema/docs, and adds a regression test as requested by #6035.
Out of Scope Changes check ✅ Passed The extra tag migrations are consistent with the same schema-description refactor and do not appear unrelated.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

MegaLinter analysis: Success

✅ Linters with no issues

actionlint, bash-exec, git_diff, hadolint, jscpd, jsonlint, lychee, markdown-table-formatter, markdownlint, prettier, prettier, shellcheck, shfmt, stylelint, syft, trivy-sbom, trufflehog, v8r, v8r, yamllint

Notices

📣 MegaLinter 9.5.0 is out! Discover the new features and security recommendations in the release announcement. (Skip this info by defining SECURITY_SUGGESTIONS: false)

See detailed reports in MegaLinter artifacts

MegaLinter is graciously provided by OX Security
Show us your support by starring ⭐ the repository

@github-code-quality

github-code-quality Bot commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

Code Coverage Overview

Languages: Go

Go / code-coverage/go

The overall coverage in the branch remains at 66%, unchanged from the branch.

Show a code coverage summary of the most impacted files.
File e59e358 1413e42 +/-
docs/fielddocs.go 88% 87% -1%
pkg/svc/mirror/...unnelsession.go 95% 94% -1%
pkg/svc/provisi...etzner/token.go 73% 77% +4%

Updated July 11, 2026 08:03 UTC
Code Coverage is in Public Preview. Learn more and provide us with your feedback.

The jsonschema struct tag's options are comma-separated, so a comma inside an
inline description= silently truncates the published schema, the generated
configuration reference, and the TS types (#6035). Migrate every inline
description= (30 fields across 5 files) to the dedicated jsonschema_description
tag, which has no option grammar — the original prose, commas included, now
survives verbatim. The tag-guard test now forbids inline description= so the
class cannot recur, and all four previously-truncated descriptions are restored
in the regenerated artifacts.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@devantler

Copy link
Copy Markdown
Contributor Author

🤖 Generated by the Daily AI Engineer

@coderabbitai full review

@coderabbitai

coderabbitai Bot commented Jul 10, 2026

Copy link
Copy Markdown

@devantler I'll perform a full review of the changes now.

✅ Action performed

Full review finished.


You're currently rate limited under our Fair Usage Limits Policy. Your recent PR review activity is in the 95th percentile or higher among CodeRabbit users, so adaptive limits apply. Your next review will be available in 41 minutes.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/src/content/docs/configuration/declarative-configuration.mdx`:
- Line 417: The `expander` field is documented only as `[]enum` even though the
schema accepts both a scalar enum and an enum array. Update the source or
generator responsible for the configuration table to render this type as `enum |
[]enum`, then regenerate the documentation with `go generate ./docs/...`; do not
edit the generated MDX directly.

In `@pkg/apis/cluster/v1alpha1/autoscaler.go`:
- Line 33: Update the jsonschema_description on AutoscalerSpec.MaxNodesTotal to
replace the fragment “Should be <= serverLimit” with “The value should be <=
serverLimit”, then regenerate the generated documentation using go generate
./docs/...; do not edit generated artifacts manually.

In `@pkg/apis/cluster/v1alpha1/types.go`:
- Line 94: The DistributionConfig description in the DistributionConfig field is
incomplete and appears exhaustive; either add KWOK, GKE, and AKS locations or
label the existing paths as examples. Then regenerate the schema and
documentation artifacts using the project’s generation workflow rather than
editing generated files manually.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 5e9c1274-2aa9-4380-b505-e75cfb5ab12d

📥 Commits

Reviewing files that changed from the base of the PR and between 19e99aa and 36b3ca7.

⛔ Files ignored due to path filters (1)
  • web/ui/src/generated/ksail-config.ts is excluded by !**/generated/**
📒 Files selected for processing (9)
  • docs/src/content/docs/configuration/declarative-configuration.mdx
  • pkg/apis/cluster/v1alpha1/autoscaler.go
  • pkg/apis/cluster/v1alpha1/jsonschematag_test.go
  • pkg/apis/cluster/v1alpha1/oidc.go
  • pkg/apis/cluster/v1alpha1/options.go
  • pkg/apis/cluster/v1alpha1/sops.go
  • pkg/apis/cluster/v1alpha1/types.go
  • pkg/svc/chat/docs_generated.go
  • schemas/ksail-config.schema.json
📜 Review details
⏰ Context from checks skipped due to timeout. (16)
  • GitHub Check: CodeRabbit
  • GitHub Check: 🔍 Dead Code Analysis
  • GitHub Check: 🧪 Test
  • GitHub Check: 📦 Tidy
  • GitHub Check: 📊 Code Coverage
  • GitHub Check: 🧹 Lint - mega-linter
  • GitHub Check: 🧹 Lint - golangci-lint
  • GitHub Check: 🏗️ Build
  • GitHub Check: 🛡️ Vulnerability Scan
  • GitHub Check: 🏗️ Build KSail Binary
  • GitHub Check: ⛵ Operator Chart E2E
  • GitHub Check: 🏠 Home Isolation Guard
  • GitHub Check: 🏗️ Build (Linux)
  • GitHub Check: 🏗️ Build + cask (macOS)
  • GitHub Check: Analyze (go)
  • GitHub Check: Analyze (go)
🧰 Additional context used
📓 Path-based instructions (3)
pkg/svc/chat/docs_generated.go

📄 CodeRabbit inference engine (AGENTS.md)

Do not hand-edit pkg/svc/chat/docs_generated.go; regenerate it with go generate ./pkg/svc/chat/... after the docs generation step.

Files:

  • pkg/svc/chat/docs_generated.go
docs/src/content/docs/{cli-flags/**,configuration/declarative-configuration.mdx}

📄 CodeRabbit inference engine (AGENTS.md)

Do not hand-edit the generated CLI reference docs under docs/src/content/docs/cli-flags/ or docs/src/content/docs/configuration/declarative-configuration.mdx; regenerate them with go generate ./docs/....

Files:

  • docs/src/content/docs/configuration/declarative-configuration.mdx
schemas/ksail-config.schema.json

📄 CodeRabbit inference engine (AGENTS.md)

Do not hand-edit schemas/ksail-config.schema.json; regenerate it via the schema generator (go generate ./schemas/...).

Files:

  • schemas/ksail-config.schema.json
🧠 Learnings (2)
📚 Learning: 2026-07-10T20:56:28.132Z
Learnt from: devantler
Repo: devantler-tech/ksail PR: 6031
File: pkg/svc/chat/docs_generated.go:7-7
Timestamp: 2026-07-10T20:56:28.132Z
Learning: When reviewing code in `pkg/svc/chat/**` that uses `jsonschema:"description=..."` struct tags feeding the `go generate ./pkg/svc/chat/...` docs generator, avoid unescaped/raw commas inside the `description=` value. Struct tag options are comma-separated, so a raw comma will truncate the generated Markdown/MDX table cell text (often right before a `|`). The generator’s `mdxTableCell` correctly escapes literal `|` characters, so truncated output is usually from commas—not pipes. Fix by rewording the description to remove commas (or escaping them according to the tag parser’s rules), then regenerate the docs and ensure the related source-scan regression test passes.

Applied to files:

  • pkg/svc/chat/docs_generated.go
📚 Learning: 2026-06-30T02:35:51.945Z
Learnt from: devantler
Repo: devantler-tech/ksail PR: 5561
File: pkg/apis/cluster/v1alpha1/options.go:95-108
Timestamp: 2026-06-30T02:35:51.945Z
Learning: For kubebuilder API fields typed as `metav1.Duration`, avoid using `+kubebuilder:validation:Pattern`. `controller-gen` rejects `Pattern` markers on `metav1.Duration` (even though the field may render as a string). Use a CEL `+kubebuilder:validation:XValidation` rule instead to enforce validation constraints, e.g. on duration format/range, so code generation and schema validation both succeed.

Applied to files:

  • pkg/apis/cluster/v1alpha1/jsonschematag_test.go
  • pkg/apis/cluster/v1alpha1/sops.go
  • pkg/apis/cluster/v1alpha1/oidc.go
  • pkg/apis/cluster/v1alpha1/autoscaler.go
  • pkg/apis/cluster/v1alpha1/options.go
  • pkg/apis/cluster/v1alpha1/types.go
🪛 LanguageTool
docs/src/content/docs/configuration/declarative-configuration.mdx

[style] ~416-~416: To form a complete sentence, be sure to include a subject.
Context: ...he per-pool max values and serverLimit. Should be <= serverLimit | | expander | [...

(MISSING_IT_THERE)

🔇 Additional comments (10)
pkg/svc/chat/docs_generated.go (1)

7-7: LGTM!

pkg/apis/cluster/v1alpha1/autoscaler.go (1)

28-28: LGTM!

Also applies to: 37-40, 53-53, 99-105

pkg/apis/cluster/v1alpha1/oidc.go (1)

15-29: LGTM!

pkg/apis/cluster/v1alpha1/options.go (1)

39-46: LGTM!

Also applies to: 86-86, 175-175, 210-216

pkg/apis/cluster/v1alpha1/sops.go (1)

18-18: LGTM!

pkg/apis/cluster/v1alpha1/types.go (1)

54-54: LGTM!

Also applies to: 135-135, 148-161, 179-184, 290-290

pkg/apis/cluster/v1alpha1/jsonschematag_test.go (1)

1-143: LGTM!

schemas/ksail-config.schema.json (2)

362-369: 🗄️ Data Integrity & Integration

Verify that documented YAML boolean aliases are represented by the schema.

Both enabled fields are emitted as string enums, while their descriptions promise that YAML true/false aliases are accepted. Schema-aware editors or validators may reject those values before KSail can apply the loader alias. If aliases are valid schema-validated input, emit a string/boolean oneOf; otherwise clarify that the aliases are outside schema validation.

As per coding guidelines, do not hand-edit schemas/ksail-config.schema.json; regenerate it with go generate ./schemas/....

Also applies to: 441-447

Source: Coding guidelines


552-552: LGTM!

docs/src/content/docs/configuration/declarative-configuration.mdx (1)

205-205: LGTM!

Also applies to: 414-415

Comment thread docs/src/content/docs/configuration/declarative-configuration.mdx
Comment thread pkg/apis/cluster/v1alpha1/autoscaler.go Outdated
Comment thread pkg/apis/cluster/v1alpha1/types.go Outdated
@github-project-automation github-project-automation Bot moved this from 🫴 Ready to 🏃🏻‍♂️ In Progress in 🌊 Project Board Jul 10, 2026
The comma restoration resurfaced two prose gaps CodeRabbit flagged: the
distributionConfig location list read as exhaustive while KWOK/GKE/AKS
configs are also supported (now illustrative with the full example set),
and maxNodesTotal ended in a sentence fragment. Artifacts regenerated.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
devantler added a commit that referenced this pull request Jul 10, 2026
Replace timing-based setup cancellation with a context-driven readiness wait, cover SIGINT and SIGTERM through one table, and remove duplicate schema changes now owned by #6036.
@devantler

Copy link
Copy Markdown
Contributor Author

🤖 Generated by the Daily AI Engineer

@coderabbitai full review

Disclosure: This retrigger command was authored by the Daily AI Engineer after validating and pushing commit e6604f1.

@coderabbitai

coderabbitai Bot commented Jul 11, 2026

Copy link
Copy Markdown

@devantler I'll perform a full review of the changes now.

✅ Action performed

Full review finished.


You're currently rate limited under our Fair Usage Limits Policy. Your recent PR review activity is in the 95th percentile or higher among CodeRabbit users, so adaptive limits apply. Your next review will be available in 14 minutes.

@devantler devantler marked this pull request as ready for review July 11, 2026 05:25

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
schemas/ksail-config.schema.json (1)

526-526: 🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win

Describe the effective serverLimit semantics.

Line 826 says serverLimit: 0 uses the default limit of 10, while this description says maxNodesTotal should be <= serverLimit. With the default value, that wording incorrectly implies every positive cap is invalid. Clarify that the comparison uses the effective limit and that maxNodesTotal: 0 disables the global cap.

As per coding guidelines, update the canonical source and regenerate this schema instead of hand-editing the generated file.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@schemas/ksail-config.schema.json` at line 526, Update the canonical
configuration source describing maxNodesTotal to state that comparisons use the
effective serverLimit (including its default of 10 when configured as 0), while
maxNodesTotal: 0 disables the global cap; then regenerate
schemas/ksail-config.schema.json rather than editing the generated schema
directly.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@pkg/apis/cluster/v1alpha1/jsonschematag_test.go`:
- Around line 104-155: Add a field-specific assertion to
TestDistributionConfigDescriptionUsesCanonicalDefaultPaths for
charts/ksail-operator/crds/ksail.io_clusters.yaml, locating the ClusterSpec
distributionConfig schema description and normalizing YAML line wrapping before
comparing it with distributionConfigDescription. Ensure the test fails when the
generated CRD retains stale path text, while avoiding broad file-wide substring
matching.

In `@pkg/apis/cluster/v1alpha1/types.go`:
- Around line 90-94: The DistributionConfig documentation incorrectly says an
empty value uses the distribution’s default “file name”; update the source
comment and jsonschema_description to say “default configuration path.” Then
regenerate all affected schema and documentation artifacts using the project’s
standard generation workflow, without editing generated files manually.

---

Outside diff comments:
In `@schemas/ksail-config.schema.json`:
- Line 526: Update the canonical configuration source describing maxNodesTotal
to state that comparisons use the effective serverLimit (including its default
of 10 when configured as 0), while maxNodesTotal: 0 disables the global cap;
then regenerate schemas/ksail-config.schema.json rather than editing the
generated schema directly.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 7504135d-4cec-4578-9036-5afc27a078be

📥 Commits

Reviewing files that changed from the base of the PR and between 5f9d925 and e6604f1.

⛔ Files ignored due to path filters (1)
  • web/ui/src/generated/ksail-config.ts is excluded by !**/generated/**
📒 Files selected for processing (6)
  • charts/ksail-operator/crds/ksail.io_clusters.yaml
  • docs/src/content/docs/configuration/declarative-configuration.mdx
  • pkg/apis/cluster/v1alpha1/jsonschematag_test.go
  • pkg/apis/cluster/v1alpha1/types.go
  • pkg/svc/chat/docs_generated.go
  • schemas/ksail-config.schema.json
📜 Review details
🧰 Additional context used
📓 Path-based instructions (3)
pkg/svc/chat/docs_generated.go

📄 CodeRabbit inference engine (AGENTS.md)

Do not hand-edit pkg/svc/chat/docs_generated.go; regenerate it with go generate ./pkg/svc/chat/... after the docs generation step.

Files:

  • pkg/svc/chat/docs_generated.go
schemas/ksail-config.schema.json

📄 CodeRabbit inference engine (AGENTS.md)

Do not hand-edit schemas/ksail-config.schema.json; regenerate it via the schema generator (go generate ./schemas/...).

Files:

  • schemas/ksail-config.schema.json
docs/src/content/docs/{cli-flags/**,configuration/declarative-configuration.mdx}

📄 CodeRabbit inference engine (AGENTS.md)

Do not hand-edit the generated CLI reference docs under docs/src/content/docs/cli-flags/ or docs/src/content/docs/configuration/declarative-configuration.mdx; regenerate them with go generate ./docs/....

Files:

  • docs/src/content/docs/configuration/declarative-configuration.mdx
🧠 Learnings (3)
📚 Learning: 2026-07-10T20:56:28.132Z
Learnt from: devantler
Repo: devantler-tech/ksail PR: 6031
File: pkg/svc/chat/docs_generated.go:7-7
Timestamp: 2026-07-10T20:56:28.132Z
Learning: When reviewing code in `pkg/svc/chat/**` that uses `jsonschema:"description=..."` struct tags feeding the `go generate ./pkg/svc/chat/...` docs generator, avoid unescaped/raw commas inside the `description=` value. Struct tag options are comma-separated, so a raw comma will truncate the generated Markdown/MDX table cell text (often right before a `|`). The generator’s `mdxTableCell` correctly escapes literal `|` characters, so truncated output is usually from commas—not pipes. Fix by rewording the description to remove commas (or escaping them according to the tag parser’s rules), then regenerate the docs and ensure the related source-scan regression test passes.

Applied to files:

  • pkg/svc/chat/docs_generated.go
📚 Learning: 2026-07-10T22:57:33.181Z
Learnt from: devantler
Repo: devantler-tech/ksail PR: 6036
File: docs/src/content/docs/configuration/declarative-configuration.mdx:417-417
Timestamp: 2026-07-10T22:57:33.181Z
Learning: When reviewing declarative-configuration docs (MDX) in ksail, don’t flag as a defect a known generator limitation where `oneOf` unions of scalar-or-array enums are rendered as array-only (e.g., `[]enum` instead of `enum | []enum`) for types like `spec.cluster.autoscaler.node.expander` (tracked in issue `#6037`). If the PR only moves/rewords/edits the JSON schema description content (without changing the docs generator or schema rendering logic), treat this output shape as expected and avoid raising it as a regression.

Applied to files:

  • docs/src/content/docs/configuration/declarative-configuration.mdx
📚 Learning: 2026-06-30T02:35:51.945Z
Learnt from: devantler
Repo: devantler-tech/ksail PR: 5561
File: pkg/apis/cluster/v1alpha1/options.go:95-108
Timestamp: 2026-06-30T02:35:51.945Z
Learning: For kubebuilder API fields typed as `metav1.Duration`, avoid using `+kubebuilder:validation:Pattern`. `controller-gen` rejects `Pattern` markers on `metav1.Duration` (even though the field may render as a string). Use a CEL `+kubebuilder:validation:XValidation` rule instead to enforce validation constraints, e.g. on duration format/range, so code generation and schema validation both succeed.

Applied to files:

  • pkg/apis/cluster/v1alpha1/jsonschematag_test.go
  • pkg/apis/cluster/v1alpha1/types.go
🔇 Additional comments (6)
pkg/svc/chat/docs_generated.go (1)

7-7: LGTM!

pkg/apis/cluster/v1alpha1/types.go (1)

54-54: LGTM!

Also applies to: 135-135, 148-161, 179-184, 290-290

pkg/apis/cluster/v1alpha1/jsonschematag_test.go (1)

13-19: LGTM!

schemas/ksail-config.schema.json (1)

217-217: LGTM!

Also applies to: 369-369, 447-447, 552-552

charts/ksail-operator/crds/ksail.io_clusters.yaml (1)

306-307: LGTM!

docs/src/content/docs/configuration/declarative-configuration.mdx (1)

205-205: LGTM!

Also applies to: 414-417

Comment thread pkg/apis/cluster/v1alpha1/jsonschematag_test.go
Comment thread pkg/apis/cluster/v1alpha1/types.go
…, CRD guard

- 'default file name' -> 'default configuration path' (talos/ and kwok/ are
  directories), regenerated everywhere including the operator CRD
- maxNodesTotal description now states comparisons use the EFFECTIVE
  serverLimit (0 = default 10) and that 0 disables the global cap
- new TestGeneratedCRDCarriesCurrentDescriptions pins the chart CRD to the
  doc comments it renders from (it was stale on main)
…nto claude/jsonschema-desc-commas

# Conflicts:
#	charts/ksail-operator/crds/ksail.io_clusters.yaml
#	pkg/apis/cluster/v1alpha1/jsonschematag_test.go
#	pkg/apis/cluster/v1alpha1/types.go
#	pkg/svc/chat/docs_generated.go
@ksail-bot ksail-bot Bot enabled auto-merge (squash) July 11, 2026 06:29
@devantler

Copy link
Copy Markdown
Contributor Author

🤖 Generated by the Daily AI Engineer

Outside-diff finding (schemas/ksail-config.schema.json L526, maxNodesTotal vs serverLimit): fixed in 7099f7d. The canonical jsonschema_description on MaxNodesTotal now states that a positive value should be <= the effective serverLimit (serverLimit: 0 means its default limit of 10) and that maxNodesTotal: 0 disables the global cap; the schema and all downstream artifacts were regenerated, not hand-edited.

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 11, 2026

Copy link
Copy Markdown

@devantler Thanks for confirming — glad to hear the MaxNodesTotal description now correctly reflects the effective serverLimit semantics (including the serverLimit: 0 default-of-10 case and maxNodesTotal: 0 disabling the cap), and that it was regenerated rather than hand-edited. I'll review the latest changes now.

✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: 🏃🏻‍♂️ In Progress

Development

Successfully merging this pull request may close these issues.

Commas inside jsonschema description tags silently truncate the published schema and docs

1 participant