Skip to content

CAP v2.17.0 promotion capstone: version-consistency guard, claim truth, dashboard wire-contract fix - #410

Open
yaront1111 wants to merge 3 commits into
mainfrom
moe/epic-0812e1dce71c4caf91df89b5b99d4bec/task-a24b53c5348c4d84bcc0c15533aa7fe7-cordum
Open

CAP v2.17.0 promotion capstone: version-consistency guard, claim truth, dashboard wire-contract fix#410
yaront1111 wants to merge 3 commits into
mainfrom
moe/epic-0812e1dce71c4caf91df89b5b99d4bec/task-a24b53c5348c4d84bcc0c15533aa7fe7-cordum

Conversation

@yaront1111

@yaront1111 yaront1111 commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Capstone residuals for the CAP v2.17.0 promotion (task-a24b53c5; core pins landed in #408 by @yaront1111). Frozen target: v2.17.0 @ e580c670d54a7563c749835c7dd09d81f116c823 — a completed release: GitHub Release published 2026-07-22T20:01:47Z, all four publish workflows green, registries verified live (Go proxy Origin.Hash exact; npm cap-sdk-node@2.17.0 sha512-4kAPiJeVI7I3…; PyPI cap-sdk-python/cordum-guard 2.17.0 whl+sdist hashes recorded); CAP manifest promotion in cordum-io/cap#90 (42/42 checks green, awaiting admin merge).

Commits

  1. 63faa18e test(cap): cross-file CAP version-consistency regression test (tools/scripts) — root+sdk+CI CAP_REV/CAP_HANDSHAKE_CAP_SHA must agree on one exact published tag/commit pair (knownCAPTagCommits binds v2.17.0→e580c670); rejects pseudo-versions and CAP replaces; CRLF-immune; every rule proven by a wrong-fixture test (11 tests).
  2. e6659096 docs: current-support claims corrected to introduction-provenance phrasing (AGENT_PROTOCOL/CORE/sdk-reference/feature-matrix/runtime.go comments); CHANGELOG promotion entry incl. explicit exclusion of interop task-674 surfaces; historical sections retained; deploy/compose/cordum-helm confirmed CAP-version-free (grep evidence).
  3. 7a8dc549 fix(dashboard): ErrorCode enum had drifted from the wire protocol (102-104, whole 200-range, 302, 400-range mislabeled — e.g. wire 200 JOB_TIMEOUT rendered "Job: Not Found"). Aligned name-for-name/value-for-value with proto/cordum/agent/v1/job.proto; AlertSeverity verified already-correct; new errorCodeContract.test.ts pins the table (written first, observed RED 2/4, then GREEN 4/4).

Evidence (full logs in task record)

  • Prereq gate: 6 squash commits (Fix context window token conversion #69/Hardening: memory policies, JetStream durability, demo reliability #82/Policy Studio firewall editor + focus mode #85/Vendor wiki and bump SDK CAP dependency #83/Docs: track AGENTS guidelines #76/Release v0.2.0: Durable Saga + CAP v2.0.16 #80) ancestor+merged+content-verified on CAP main; INTEROP=N/A_NOT_LANDED.
  • Full suite at exact pushed SHA in a fresh worktree: 98 ok / 18 platform skips / only the two pre-existing CRLF-environment toolchain tests red locally (Linux CI green). -p 1 -count=3 flake sweep all ok (scheduler 108.9s, gateway 230.3s, …). -race unavailable (CGO off) — count=3 is the approved substitute.
  • Real transport, twice, zero skips: tests/handshakeinterop 47 PASS (challenge→authenticate→result + 8 negatives × Go/Py/Node installed SDKs, real Redis by digest, embedded real NATS, CAP SHA enforced); tests/capproduction 198 PASS / 5 pkgs (signed work/result; unsigned/tampered/expired/wrong-audience/wrong-session/replay/stale-attempt rejected before side effects; sealed ResourceRef). Full compose stack 8/8 healthy + -tags=integration 97 ok.
  • Dashboard rail vs branch-point baseline (tsc 0 / vitest 247-2111 / build ok): tsc 0 errors; vitest 248 files / 2115 tests passed; build 4.97s — delta is exactly the new contract test.
  • No CAP replace/pseudo-version anywhere; clean-cache Origin.Hash re-verified; no go.work; .env/certs gitignored and never staged.

Review order: this PR is independent of cordum-io/cordum-packs (packs promotion PR); both depend conceptually on cordum-io/cap#90 for manifest truth.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Changed

    • Updated dashboard error-code names, values, labels, and severity mappings to match the current protocol contract.
    • Promoted the CAP dependency to v2.17.0 across supported SDK and module references.
    • Added consistency checks to detect mismatched versions, commits, or unsupported dependency overrides.
  • Documentation

    • Clarified CAP feature version references and SDK documentation.
    • Updated worker readiness documentation to reflect the pinned SDK baseline.

Yaron Torgeman added 3 commits July 22, 2026 23:28
Adds a platform-neutral checker under tools/scripts that requires the
root module, the nested sdk module, and the CI CAP checkout
(CAP_REV / CAP_HANDSHAKE_CAP_SHA) to agree on one exact stable CAP tag,
rejects pseudo-versions and CAP replace directives, and binds the
configured tag to its immutable release commit through the
knownCAPTagCommits table (currently v2.17.0 ->
e580c670d54a7563c749835c7dd09d81f116c823, the promoted release this
capstone freezes). Line-anchored patterns normalize CRLF so the test
behaves identically on autocrlf (Windows) and LF working trees, unlike
the neighboring toolchain tests.

Every rule is proven to fire by a dedicated wrong-fixture test
(pseudo-version, root/sdk skew, replace directive, CI SHA mismatch,
unknown tag, tag/commit binding, missing requirement, single-line
require form, CRLF).

go test ./tools/scripts/ -run 'CAPConsistency|RepositoryCAPVersionConsistency': ok (11 tests).

Signed-off-by: Yaron Torgeman <yaront1111@gmail.com>
Current-support sections no longer misstate the shipped CAP dependency:
- AGENT_PROTOCOL / CORE / sdk-reference / backend feature matrix headings
  and claims now use introduction-provenance phrasing (introduced in CAP
  v2.13.1 / pinned CAP SDK) instead of implying the current dependency is
  v2.13.1 or v2.9.0; explicitly historical sections (CAP v2.9.0 changes,
  boundary hardening) are unchanged.
- sdk/runtime alias-group comments clarified as introduction markers
  (introduced with CAP v2.5.2 / v2.5.3), not currency claims.
- CHANGELOG records the v2.17.0 promotion, the new cross-file version
  consistency test, and explicitly documents that interop task-674
  surfaces (TraceContext/WorkflowEvent/A2A/MCP) are NOT part of v2.17.0.

N/A with grep evidence: deploy/, docker-compose*.yml, and cordum-helm/
contain no CAP version claims. dashboard/src/api/types.ts is handled by
the dedicated dashboard step.

Verified: go build ./... in sdk module; go vet ./runtime; go test
./tools/scripts ok.

Signed-off-by: Yaron Torgeman <yaront1111@gmail.com>
Verification against the pinned CAP proto (proto/cordum/agent/v1/job.proto
at v2.17.0) showed the dashboard's hand-written ErrorCode numeric table had
drifted from the wire values it decodes: 102-104 and the entire 200-range,
302, and the 400-range carried wrong names, so ErrorCodeBadge mislabeled
real backend error_code_enum values (e.g. wire 200 JOB_TIMEOUT rendered as
"Job: Not Found"). AlertSeverity was verified correct.

- ErrorCode now matches the protocol name-for-name and value-for-value;
  errorCodeLabel updated accordingly. Category ranges were already correct.
- Stale "matches CAP v2.5.2" comments replaced with non-version provenance
  pointing at the proto file and the new contract test.
- New src/api/errorCodeContract.test.ts pins every name/value pair plus
  label and category behavior (written first and observed RED: 2 failed /
  2 passed against the drifted table).

Dashboard rail (vs branch-point baseline tsc 0 errors, vitest 247/2111,
build ok): tsc --noEmit exit 0 with 0 errors; vitest 248 files / 2115
tests passed (delta = this contract test); npm run build exit 0 in 4.97s.

Signed-off-by: Yaron Torgeman <yaront1111@gmail.com>
@coderabbitai

coderabbitai Bot commented Jul 22, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

CAP v2.17.0 promotion adds repository-wide version consistency checks, aligns dashboard error-code mappings with CAP wire values, and updates changelog, documentation, and runtime comments.

Changes

CAP promotion and contract alignment

Layer / File(s) Summary
CAP version consistency validation
tools/scripts/cap_version_consistency_test.go
Validates matching stable CAP tags, CI commit pins, required SHA equality, forbidden replacements, supported formats, and repository consistency through fixture and integration tests.
Dashboard error and alert wire contracts
dashboard/src/api/types.ts, dashboard/src/api/errorCodeContract.test.ts
Updates ErrorCode names, numeric mappings, and labels, and tests ErrorCode and AlertSeverity values against pinned wire contracts.
Release documentation alignment
CHANGELOG.md, docs/..., sdk/runtime/runtime.go
Documents the CAP v2.17.0 promotion and revises historical CAP version wording across protocol, SDK, feature matrix, and runtime documentation.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Possibly related PRs

Suggested reviewers: bigboycoder1

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately reflects the CAP v2.17.0 promotion, version-consistency guard, documentation claim updates, and dashboard wire-contract alignment.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch moe/epic-0812e1dce71c4caf91df89b5b99d4bec/task-a24b53c5348c4d84bcc0c15533aa7fe7-cordum

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@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

🤖 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 `@dashboard/src/api/types.ts`:
- Around line 610-631: The errorCodeLabel function does not explicitly label the
valid ErrorCode.UNSPECIFIED value, and its contract test lacks zero-value
coverage. In dashboard/src/api/types.ts lines 610-631, add an
ErrorCode.UNSPECIFIED case with the intended human-readable label; in
dashboard/src/api/errorCodeContract.test.ts lines 39-47, assert that zero maps
to this label.

In `@docs/sdk-reference.md`:
- Around line 687-689: Update the CAP provenance in the “CAP Re-exported Types”
section and the Config.Logger/Config.Metrics documentation: attribute runtime
and observability aliases according to their introductions in
sdk/runtime/runtime.go, distinguishing CAP v2.5.2 from v2.5.3 instead of
applying CAP v2.13.1 universally. Apply the corresponding correction at the
Config fields location as well.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: e8c7174b-adda-427e-91e4-14aca7d41eb7

📥 Commits

Reviewing files that changed from the base of the PR and between f667720 and 7a8dc54.

📒 Files selected for processing (9)
  • CHANGELOG.md
  • dashboard/src/api/errorCodeContract.test.ts
  • dashboard/src/api/types.ts
  • docs/AGENT_PROTOCOL.md
  • docs/CORE.md
  • docs/backend_feature_matrix.md
  • docs/sdk-reference.md
  • sdk/runtime/runtime.go
  • tools/scripts/cap_version_consistency_test.go

Comment on lines 610 to 631
/** Human-readable label for an ErrorCode value. */
export function errorCodeLabel(code: number): string {
switch (code) {
case ErrorCode.PROTOCOL_VERSION_MISMATCH: return "Protocol: Version Mismatch";
case ErrorCode.PROTOCOL_INVALID_PACKET: return "Protocol: Invalid Packet";
case ErrorCode.PROTOCOL_MALFORMED_PACKET: return "Protocol: Malformed Packet";
case ErrorCode.PROTOCOL_UNKNOWN_PAYLOAD: return "Protocol: Unknown Payload";
case ErrorCode.PROTOCOL_SIGNATURE_INVALID: return "Protocol: Signature Invalid";
case ErrorCode.PROTOCOL_TIMEOUT: return "Protocol: Timeout";
case ErrorCode.PROTOCOL_RATE_LIMITED: return "Protocol: Rate Limited";
case ErrorCode.JOB_NOT_FOUND: return "Job: Not Found";
case ErrorCode.JOB_ALREADY_COMPLETED: return "Job: Already Completed";
case ErrorCode.PROTOCOL_SIGNATURE_MISSING: return "Protocol: Signature Missing";
case ErrorCode.JOB_TIMEOUT: return "Job: Timeout";
case ErrorCode.JOB_CANCELLED: return "Job: Cancelled";
case ErrorCode.JOB_PERMISSION_DENIED: return "Job: Permission Denied";
case ErrorCode.JOB_RESOURCE_EXHAUSTED: return "Job: Resource Exhausted";
case ErrorCode.JOB_PERMISSION_DENIED: return "Job: Permission Denied";
case ErrorCode.JOB_INVALID_INPUT: return "Job: Invalid Input";
case ErrorCode.JOB_NOT_FOUND: return "Job: Not Found";
case ErrorCode.JOB_DUPLICATE: return "Job: Duplicate";
case ErrorCode.JOB_WORKER_UNAVAILABLE: return "Job: Worker Unavailable";
case ErrorCode.SAFETY_DENIED: return "Safety: Denied";
case ErrorCode.SAFETY_POLICY_VIOLATION: return "Safety: Policy Violation";
case ErrorCode.SAFETY_OUTPUT_QUARANTINED: return "Safety: Output Quarantined";
case ErrorCode.TRANSPORT_UNAVAILABLE: return "Transport: Unavailable";
case ErrorCode.TRANSPORT_POOL_EXHAUSTED: return "Transport: Pool Exhausted";
case ErrorCode.TRANSPORT_DELIVERY_FAILED: return "Transport: Delivery Failed";
case ErrorCode.SAFETY_RISK_TAG_BLOCKED: return "Safety: Risk Tag Blocked";
case ErrorCode.TRANSPORT_PUBLISH_FAILED: return "Transport: Publish Failed";
case ErrorCode.TRANSPORT_SUBSCRIBE_FAILED: return "Transport: Subscribe Failed";
case ErrorCode.TRANSPORT_CONNECTION_LOST: return "Transport: Connection Lost";
default: return `Error ${code}`;

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Label the defined UNSPECIFIED wire value.

ErrorCode.UNSPECIFIED currently falls through to Error 0, making a valid protocol value indistinguishable from an unknown code.

  • dashboard/src/api/types.ts#L610-L631: add an explicit UNSPECIFIED label.
  • dashboard/src/api/errorCodeContract.test.ts#L39-L47: assert the zero-value label.
Proposed fix
 export function errorCodeLabel(code: number): string {
   switch (code) {
+    case ErrorCode.UNSPECIFIED: return "Unspecified";
     case ErrorCode.PROTOCOL_VERSION_MISMATCH: return "Protocol: Version Mismatch";
   it("labels wire values with the matching category and name", () => {
+    expect(errorCodeLabel(0)).toBe("Unspecified");
     expect(errorCodeLabel(200)).toBe("Job: Timeout");
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
/** Human-readable label for an ErrorCode value. */
export function errorCodeLabel(code: number): string {
switch (code) {
case ErrorCode.PROTOCOL_VERSION_MISMATCH: return "Protocol: Version Mismatch";
case ErrorCode.PROTOCOL_INVALID_PACKET: return "Protocol: Invalid Packet";
case ErrorCode.PROTOCOL_MALFORMED_PACKET: return "Protocol: Malformed Packet";
case ErrorCode.PROTOCOL_UNKNOWN_PAYLOAD: return "Protocol: Unknown Payload";
case ErrorCode.PROTOCOL_SIGNATURE_INVALID: return "Protocol: Signature Invalid";
case ErrorCode.PROTOCOL_TIMEOUT: return "Protocol: Timeout";
case ErrorCode.PROTOCOL_RATE_LIMITED: return "Protocol: Rate Limited";
case ErrorCode.JOB_NOT_FOUND: return "Job: Not Found";
case ErrorCode.JOB_ALREADY_COMPLETED: return "Job: Already Completed";
case ErrorCode.PROTOCOL_SIGNATURE_MISSING: return "Protocol: Signature Missing";
case ErrorCode.JOB_TIMEOUT: return "Job: Timeout";
case ErrorCode.JOB_CANCELLED: return "Job: Cancelled";
case ErrorCode.JOB_PERMISSION_DENIED: return "Job: Permission Denied";
case ErrorCode.JOB_RESOURCE_EXHAUSTED: return "Job: Resource Exhausted";
case ErrorCode.JOB_PERMISSION_DENIED: return "Job: Permission Denied";
case ErrorCode.JOB_INVALID_INPUT: return "Job: Invalid Input";
case ErrorCode.JOB_NOT_FOUND: return "Job: Not Found";
case ErrorCode.JOB_DUPLICATE: return "Job: Duplicate";
case ErrorCode.JOB_WORKER_UNAVAILABLE: return "Job: Worker Unavailable";
case ErrorCode.SAFETY_DENIED: return "Safety: Denied";
case ErrorCode.SAFETY_POLICY_VIOLATION: return "Safety: Policy Violation";
case ErrorCode.SAFETY_OUTPUT_QUARANTINED: return "Safety: Output Quarantined";
case ErrorCode.TRANSPORT_UNAVAILABLE: return "Transport: Unavailable";
case ErrorCode.TRANSPORT_POOL_EXHAUSTED: return "Transport: Pool Exhausted";
case ErrorCode.TRANSPORT_DELIVERY_FAILED: return "Transport: Delivery Failed";
case ErrorCode.SAFETY_RISK_TAG_BLOCKED: return "Safety: Risk Tag Blocked";
case ErrorCode.TRANSPORT_PUBLISH_FAILED: return "Transport: Publish Failed";
case ErrorCode.TRANSPORT_SUBSCRIBE_FAILED: return "Transport: Subscribe Failed";
case ErrorCode.TRANSPORT_CONNECTION_LOST: return "Transport: Connection Lost";
default: return `Error ${code}`;
/** Human-readable label for an ErrorCode value. */
export function errorCodeLabel(code: number): string {
switch (code) {
case ErrorCode.UNSPECIFIED: return "Unspecified";
case ErrorCode.PROTOCOL_VERSION_MISMATCH: return "Protocol: Version Mismatch";
case ErrorCode.PROTOCOL_MALFORMED_PACKET: return "Protocol: Malformed Packet";
case ErrorCode.PROTOCOL_UNKNOWN_PAYLOAD: return "Protocol: Unknown Payload";
case ErrorCode.PROTOCOL_SIGNATURE_INVALID: return "Protocol: Signature Invalid";
case ErrorCode.PROTOCOL_SIGNATURE_MISSING: return "Protocol: Signature Missing";
case ErrorCode.JOB_TIMEOUT: return "Job: Timeout";
case ErrorCode.JOB_RESOURCE_EXHAUSTED: return "Job: Resource Exhausted";
case ErrorCode.JOB_PERMISSION_DENIED: return "Job: Permission Denied";
case ErrorCode.JOB_INVALID_INPUT: return "Job: Invalid Input";
case ErrorCode.JOB_NOT_FOUND: return "Job: Not Found";
case ErrorCode.JOB_DUPLICATE: return "Job: Duplicate";
case ErrorCode.JOB_WORKER_UNAVAILABLE: return "Job: Worker Unavailable";
case ErrorCode.SAFETY_DENIED: return "Safety: Denied";
case ErrorCode.SAFETY_POLICY_VIOLATION: return "Safety: Policy Violation";
case ErrorCode.SAFETY_RISK_TAG_BLOCKED: return "Safety: Risk Tag Blocked";
case ErrorCode.TRANSPORT_PUBLISH_FAILED: return "Transport: Publish Failed";
case ErrorCode.TRANSPORT_SUBSCRIBE_FAILED: return "Transport: Subscribe Failed";
case ErrorCode.TRANSPORT_CONNECTION_LOST: return "Transport: Connection Lost";
default: return `Error ${code}`;
📍 Affects 2 files
  • dashboard/src/api/types.ts#L610-L631 (this comment)
  • dashboard/src/api/errorCodeContract.test.ts#L39-L47
🤖 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 `@dashboard/src/api/types.ts` around lines 610 - 631, The errorCodeLabel
function does not explicitly label the valid ErrorCode.UNSPECIFIED value, and
its contract test lacks zero-value coverage. In dashboard/src/api/types.ts lines
610-631, add an ErrorCode.UNSPECIFIED case with the intended human-readable
label; in dashboard/src/api/errorCodeContract.test.ts lines 39-47, assert that
zero maps to this label.

Comment thread docs/sdk-reference.md
Comment on lines +687 to +689
## 8. CAP Re-exported Types

The `sdk/runtime` package re-exports several types from the CAP v2.13.1 SDK for convenience. These are available under the `runtime` package without importing CAP directly.
The `sdk/runtime` package re-exports several types from the pinned CAP SDK for convenience (first introduced in CAP v2.13.1). These are available under the `runtime` package without importing CAP directly.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
rg -n 'introduced (with|in) CAP|CAP v2\.(5\.2|5\.3|13\.1)' \
  docs/sdk-reference.md sdk/runtime/runtime.go

Repository: cordum-io/cordum

Length of output: 646


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "## docs/sdk-reference.md around cited lines"
sed -n '660,775p' docs/sdk-reference.md | nl -ba -v660

echo
echo "## sdk/runtime/runtime.go around cited lines"
sed -n '1,80p' sdk/runtime/runtime.go | nl -ba -v1

echo
echo "## All CAP version mentions in sdk/runtime/runtime.go"
rg -n 'CAP v2|v2\.5|v2\.13|runtime|re-export|Alias|type ' sdk/runtime/runtime.go docs/sdk-reference.md

Repository: cordum-io/cordum

Length of output: 238


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "## docs/sdk-reference.md around cited lines"
sed -n '660,775p' docs/sdk-reference.md | gawk '{printf "%6d\t%s\n", NR+659, $0}'

echo
echo "## sdk/runtime/runtime.go around cited lines"
sed -n '1,80p' sdk/runtime/runtime.go | gawk '{printf "%6d\t%s\n", NR, $0}'

echo
echo "## All CAP version mentions in sdk/runtime/runtime.go and docs/sdk-reference.md"
rg -n 'CAP v2|v2\.5|v2\.13|runtime|re-export|Alias|type ' sdk/runtime/runtime.go docs/sdk-reference.md || true

echo
echo "## SDK module files mentioning CAP dependency/version"
rg -n 'github\.com/.*CAP|CAP|sAP|sap|v2\.5|v2\.13|sdk/runtime' go.mod go.sum docs sdk/runtime || true

Repository: cordum-io/cordum

Length of output: 30346


Correct the CAP introduction-version attribution.

docs/sdk-reference.md attributes the re-exported runtime/observability types and the new Config.Logger/Config.Metrics fields to CAP v2.13.1, but sdk/runtime/runtime.go marks the relevant aliases as introduced in CAP v2.5.2 and v2.5.3. Split the provenance by type instead of using one blanket version.

📍 Affects 1 file
  • docs/sdk-reference.md#L687-L689 (this comment)
  • docs/sdk-reference.md#L759-L759
🤖 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 `@docs/sdk-reference.md` around lines 687 - 689, Update the CAP provenance in
the “CAP Re-exported Types” section and the Config.Logger/Config.Metrics
documentation: attribute runtime and observability aliases according to their
introductions in sdk/runtime/runtime.go, distinguishing CAP v2.5.2 from v2.5.3
instead of applying CAP v2.13.1 universally. Apply the corresponding correction
at the Config fields location as well.

@github-actions

Copy link
Copy Markdown

Lighthouse CI — /login

Lighthouse CI artifacts unavailable: ENOENT: no such file or directory, open 'dashboard/.lighthouseci/manifest.json'

@github-actions

Copy link
Copy Markdown

Bundle size report

Soft thresholds (warn-only): initial ≤ 400 KB raw / 120 KB gzip; total ≤ 3100 KB raw / 950 KB gzip.

Kind Chunk Raw Gzip Brotli
initial ⚙ index-Jb9L6A9u.js 611.4 KB 186.6 KB 161.8 KB
route generateCategoricalChart-SLMRVlg8.js 353.0 KB 91.5 KB 75.4 KB
route WorkflowStudioPage-DobrrzSF.js 286.1 KB 81.5 KB 70.7 KB
route types-DCNV9-kY.js 95.2 KB 25.7 KB 23.3 KB
route DataTable-BahjyA9u.js 72.7 KB 19.7 KB 17.8 KB
route client-Pacv2hUg.js 71.5 KB 22.0 KB 19.6 KB
route HomePage-DZrUifiL.js 59.3 KB 16.1 KB 14.5 KB
route ApprovalsPage-DdQCIRY7.js 45.7 KB 10.7 KB 9.5 KB
route PolicyOverviewPage-DyL22322.js 44.8 KB 11.1 KB 9.7 KB
route BundleDetailPage-Bfxny2bR.js 42.0 KB 11.7 KB 10.4 KB
route AgentDetailPage-BxbE-Yqm.js 38.7 KB 9.2 KB 8.2 KB
route createLucideIcon-CEcuTTRr.js 37.1 KB 12.5 KB 11.0 KB
route JobDetailPage-DqAbtp6y.js 34.8 KB 9.1 KB 8.2 KB
route EdgeSessionDetailPage-zbRchr5Q.js 34.5 KB 9.3 KB 8.3 KB
route RunDetailPage-cC2SgVKY.js 28.1 KB 8.6 KB 7.7 KB
route InputRuleEditorDrawer-gPMcMLZf.js 25.1 KB 6.8 KB 6.0 KB
route JobsPage-Bk6Y2x33.js 23.4 KB 7.0 KB 6.2 KB
route SettingsSSOPage-Di22Ul7F.js 23.2 KB 6.3 KB 5.6 KB
route AuditLogPage-cvuZsFMG.js 23.1 KB 6.9 KB 6.2 KB
route OutputRulesPage-CqdTFkGv.js 23.1 KB 6.1 KB 5.4 KB
route VelocityRulesPage-BzInD6zk.js 22.8 KB 6.3 KB 5.6 KB
route SettingsNotificationsPage-C5bCLxaK.js 21.7 KB 5.4 KB 4.7 KB
route AgentsPage-C7FA2uGq.js 21.2 KB 5.6 KB 5.1 KB
route SettingsUsersPage-CgMZb9sj.js 19.5 KB 5.3 KB 4.7 KB
route LicensePage-jS3dpEkh.js 19.0 KB 5.5 KB 4.9 KB
+ 143 more chunks
Total 168 chunks 2581.4 KB 766.4 KB n/a
Initial index-Jb9L6A9u.js 611.4 KB 186.6 KB 161.8 KB

⚠ Soft-threshold warnings

  • initial chunk raw 611.4 KB > 400 KB threshold
  • initial chunk gzip 186.6 KB > 120 KB threshold

Warn-only: this PR is not blocked. Audit the regression before merging.

@github-actions

Copy link
Copy Markdown

SDK Conformance — last run

Generated: 2026-07-22T21:57:01.653Z

Totals

SDK Pass Fail Total
go 20 0 20
python 20 0 20
typescript 20 0 20

Matrix

Fixture Go Python TypeScript
agents.create_and_get PASS PASS PASS
agents.list_and_filter PASS PASS PASS
agents.update_and_delete PASS PASS PASS
audit.list_paginated PASS PASS PASS
auth.api_key_success PASS PASS PASS
auth.api_key_unauthorized PASS PASS PASS
auth.session_login_refresh PASS PASS PASS
errors.not_found PASS PASS PASS
errors.rate_limit_retry_after PASS PASS PASS
errors.server_retry_exhausted PASS PASS PASS
errors.validation_field_errors PASS PASS PASS
idempotency.post_with_key_retries PASS PASS PASS
idempotency.post_without_key_does_not_retry PASS PASS PASS
jobs.cancel_inflight PASS PASS PASS
jobs.list_with_filters PASS PASS PASS
jobs.submit_and_track PASS PASS PASS
policies.apply_and_rollback PASS PASS PASS
policies.list_and_get_bundle PASS PASS PASS
workflows.crud PASS PASS PASS
workflows.run_and_stream_events PASS PASS PASS

Overall: ✅ ALL GREEN — every SDK passed every fixture.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant