Repository navigation
feat!: publish versioned plugin SDKs with compatibility checks - #4534
Conversation
|
Important Review skippedToo many files! This PR contains 487 files, which is 337 over the limit of 150. To get a review, reduce the PR to 150 files or fewer by splitting it into smaller PRs or changing its base branch. Upgrade to a paid plan to raise the limit. Usage-priced reviews support at most 300 files.
|
|
Claude finished @zeval's task in 4m 16s —— View job FindingsReviewed head commit Suggestion (recommended, doesn't block)
Summary
Verdict: Ready with suggestions The structural choices (module layout, shared SDK versioning, SDK-wide host minimum, sequential release steps) are well-reasoned and internally consistent. The requirements, ADR, and plan are coherent. All five suggestions stem from the same root: the design-review's required amendments haven't been merged back into the canonical system design and work orders. Items 1–4 identify the specific places where that gap creates implementer ambiguity; item 5 asks for a one-line status note so the review document can be clearly retired once reconciliation is done. None of the five block merging the planning package — it's explicitly a draft pending reconciliation — but items 1–4 should be resolved before any implementation work order is opened. |
…plan-work-for-issue-46a # Conflicts: # .github/workflows/backend-tests.yml # .github/workflows/e2e-tests.yml
Cloudflare Pages docs previewBuilt from docs commit Stable PR alias: https://docs-pr-4534.landing-87j.pages.dev/docs |
d9c00f6 to
922dfd9
Compare
922dfd9 to
b5e5644
Compare
3ee4e17 to
4956948
Compare
Preserve SDK cache inputs with the shared cache publication policy. Retain the stronger locale checks and the archive response deadline fix.
Preserve touch scroll admission and restoration input precedence. Keep the shared silent-output gates and existing compatibility checks.
Retain the standalone plugin SDK requirement and local replacement. Validate the merged prompt and rich-output changes on desktop and phone.
Tip
PR walkthrough: Open the visual walkthrough
Plugin authors can compile and typecheck against published Go/npm SDKs without a sibling Kandev source checkout. This implements SDK extraction, installed-dependency compatibility checks, and verified Stable publication for #4358. The first public release and external repository migrations remain outstanding.
Implementation
github.com/kdlbs/kandev/pluginsdk, including the canonical protocol, and migrate host imports. Update host builds, Docker/preview layouts, and CI selection for the separate module.@kdlbs/plugin-sdktypes. Go and npm share an independent SDK version starting at0.1.0, release records, pinned packing tools, and a verified archive inventory.kandev-sdk-check. It checks the actual selected Go module and installed npm/pnpm dependency evidence, Stable host minimum, highest consumed SDK floor, and supported API versions. It supports npm hoisting, checkout aliases, and pnpm managed-store links while rejecting local SDK substitutions. Workspace locks have a 32 MiB limit; manifests and release records retain a 1 MiB limit.plugin-packstill requires a separately pinned tooling checkout or equivalent validated packaging.Compatibility
Old Go imports must migrate; there is no forwarding package. Frontend source consumers must replace the former local
@kandev/plugin-sdkname in dependencies, imports, and lockfiles. Already-built plugins retain the same wire protocol and handshake. A real legacy subprocess test verifies handshake and a Host state roundtrip, but does not certify every third-party plugin or frontend bundle. Adopting a newer SDK can raise a plugin's minimum supported host. SDK numbering remains independent of host and plugin versions.Reliability and validation
Integrated main through
3f3aabc53f23cc8b08f0bf2b1b766b88fbeaf7f2in4e965e8393efbefea386f333bd042757ae2804e7. The preceding merge resolvesreview-scroll and silent-output fixture conflicts. Review input cancels a
pending restoration before enabling marking, while retaining main's touch
contact support and mouse/pen restrictions. Shared unique gates retain the
silent-output and completion holds. The Go module keeps main's new ACP
replacement plus the standalone SDK requirement/local replacement.
d17d84a8084b15ddf1df10ff465a51d27c780e64. The exact synthetic mergef45a92e02e7166c51a4eb2d1919ae37a82619642is conflict-free and passes 107 focused image/rendering/review tests plus docs/spec validation (414 decisions / 1,802 specifications). It was tested in an owned temporary worktree and was not pushed.NOTIFICATION_GUIDE.mdremains uncommitted.Implementation plan and receipts · Adversarial review record
Release prerequisites
No release was dispatched or SDK published by this task. Actual Stable preparation must resolve the initial host metadata. Authenticated npm checks confirm
zvalowns thekdlbsorganization. Maintainers must record ownership confirmation inreleaseandrelease-validation, configure trusted publishing with direct-publish and dist-tag permissions, and handle any first-package bootstrap using the exact retained archive. Public verification must pass before announcing availability. External template/plugin migrations and author notifications remain separate work.Eleven external migration tasks remain queued, with briefs updated to the selected namespace. Petdex and Augpool are retired.
Related: #4358. This PR is ready for review. Do not close the issue from this delivery.
Checklist
apps/web/), I have added or updated Playwright e2e tests inapps/web/e2e/and verified them withmake test-e2e.docs/public/**and updated them or noted why no docs change is needed.