feat: support manifest-based distribution updates - #2596
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Team Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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. Comment |
|
|
bab04f4 to
7591732
Compare
b6e1088 to
4eca685
Compare
4eca685 to
f28e055
Compare
|
Confirmed:
I have added this contract boundary to the PR description. Thanks — please continue with the full code and security review. |
Summary
Allow an optional extension provider to select a stable distribution manifest while the CLI owns version checks, verified artifact downloads, and coordinated CLI and Skills updates. Existing package-manager update behavior remains unchanged when no manifest is configured.
Changes
DistributionProvidercontract and lifecycle guidance inextension/transportinternal/distributionlark-cli updatecheck/install pathslark-cli doctorand keep Skills state scoped to its source identityExtension contract boundary
DistributionProvideris an optional capability on the existing process-wide transport provider so a wrapper has one aggregate registration point for outbound-network customization; it does not transfer update execution into the extension.The provider performs only a fast, local lookup of the configured Manifest URL. It does not fetch or parse the Manifest, add authentication headers, download artifacts, verify checksums, unpack archives, compare versions, install files, or perform rollback. Those behaviors remain owned by lark-cli's internal distribution and self-update code.
The returned Manifest URL and artifact URLs contained in that Manifest are final download addresses. They bypass the extension URL rewriter and request interceptor, while retaining the CLI's built-in proxy and custom-CA handling. The current contract has no arbitrary request-header callback; authenticated sources should use an address that is directly fetchable by the built-in client, such as a signed URL, or rely on the configured network/proxy/CA environment.
Test Plan
make unit-testpassedmake quality-gatepassedlark-cli update --check --jsonfollowed bylark-cli update --jsonupgraded a local fixture from 1.0.1 to 1.0.2 and synchronized three Skills directoriesRelated Issues
N/A