dsh-github-copilot 0.4.0-alpha.18 → 0.4.0-alpha.20

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.
@@ -25,27 +25,24 @@ through the normal reviewed PR path. Version changes include package.json,
25
25
  deployment-baseline.json and both README URLs; `publishConfig.tag` must agree
26
26
  with the channel. Do not silently rename a taken package.
27
27
 
28
- ## First package bootstrap is a maintainer operation
29
-
30
- The normal main pipeline publishes the GitHub Release first, then requires npm
31
- publication. Until bootstrap/trusted publishing is configured, the npm step
32
- fails explicitly and the workflow is **not fully delivered**. This is intentional,
33
- not a successful skipped step. The already published GitHub archive is retained.
34
-
35
- 1. From the verified immutable Release, obtain its original versioned tarball
36
- and `SHA256SUMS`. Verify the annotated tag/commit, Release state, asset digest,
37
- archive contents and SHA-256. Do not repack or edit this archive.
38
- 2. In an approved environment, the authorized maintainer verifies `npm whoami`
39
- is the intended account (`cloga`) and performs the first ordinary
40
- `npm publish <original-release.tgz> --access public --tag alpha --ignore-scripts --registry=https://registry.npmjs.org/`
41
- with interactive 2FA or explicitly authorized legitimate publishing
42
- credentials. `<original-release.tgz>` is the exact downloaded real artifact,
43
- not a directory or placeholder. Do not print, copy or commit credentials, or
44
- weaken 2FA to make this succeed.
45
- 3. Read back the exact npm version and compare `dist.integrity` with the
46
- archive's SHA-512 SRI. Configure trusted publishing, then rerun the failed
47
- CI release job on its original revision. It recovers the same bytes and
48
- verifies the existing npm version without another publish.
28
+ ## Initial package publication is complete
29
+
30
+ The initial `dsh-github-copilot@0.4.0-alpha.18` package was published from the
31
+ immutable `v0.4.0-alpha.18` GitHub Release archive. The public registry version,
32
+ SHA-512 SRI, `alpha` tag, tarball size and SHA-256 were independently verified
33
+ against those original Release bytes. The one-time workflow, token-authenticated
34
+ bootstrap script and their focused tests have therefore been removed. No normal
35
+ release workflow references `NPM_TOKEN`; removing any now-unused repository
36
+ secret remains a separate explicit maintainer operation.
37
+
38
+ The successful publish was not immediately visible to a read performed about
39
+ four seconds later, so that workflow run ended as a failure even though the
40
+ package and tag subsequently converged. Treat this as an uncertain write, not
41
+ permission to publish again. npm registry package metadata and dist-tags are
42
+ eventually consistent: after any successful or uncertain publish command, wait
43
+ for the exact version to become observable, verify `dist.integrity` and the
44
+ non-decreasing channel tag, then rerun the normal pipeline to reconcile
45
+ read-only. Never retry a publish merely because immediate readback is stale.
49
46
 
50
47
  **`npm stage publish` cannot bootstrap a nonexistent package.** The
51
48
  [official npm stage prerequisites](https://docs.npmjs.com/cli/v11/commands/npm-stage/)
@@ -104,7 +101,8 @@ The npm step reads package/version state before writing. Only E404 means
104
101
  absence; auth, TLS, timeout, malformed metadata and registry failures stop
105
102
  delivery. An existing exact version is accepted only with matching SHA-512 SRI
106
103
  and a channel tag at that version or a newer one. Conflicting bytes fail closed.
107
- An uncertain write is not retried in-process; rerun the workflow to reconcile.
104
+ An uncertain write is not retried in-process. Allow registry visibility to
105
+ converge, then rerun the workflow to reconcile the exact existing version.
108
106
  A matching version with an older/missing tag requires maintainer review; the
109
107
  workflow does not silently repair it with separate dist-tag writes.
110
108
 
@@ -120,15 +118,71 @@ There is no historical bulk backfill and no silent npm opt-out.
120
118
 
121
119
  ## Installation preflight still applies
122
120
 
123
- After both channels are verified, official Desktop accepts the exact
124
- `dsh-github-copilot@<version>` npm spec in its package manager. It does not accept
125
- the Release URL or local tarball in that UI. Follow the existing README
126
- `scripts/check-search-composition.mjs` preflight before changing configuration;
127
- the script remains in the package. A successful package lookup or install does
128
- not prove runtime activation or a successful Copilot request.
129
-
130
- For separately managed CLI profiles only, retain the required `--profile` on
131
- `dsh plugin` commands. Never use the CLI to write a reserved Desktop-managed
132
- profile, copy into node_modules, patch Core or restart active Sessions without
133
- their separate approvals. Installed-on-disk and loaded-runtime evidence remain
134
- distinct.
121
+ The native Desktop package manager remains the preferred interactive entry
122
+ point when its registry access is permitted and available. After npm publication
123
+ is verified, it accepts the exact `dsh-github-copilot@<version>` npm spec, not a
124
+ Release URL or local tarball in that UI. This UI input restriction is not a
125
+ blanket prohibition on maintaining the same profile through the supported CLI.
126
+ Controlled CLI maintenance is also supported for Desktop-managed profiles under
127
+ the checklist below. Neither entry point replaces the package's required
128
+ `scripts/check-search-composition.mjs` preflight. A package lookup, preflight or
129
+ successful installation is not proof of runtime activation or a model call.
130
+
131
+ ## Controlled offline CLI maintenance
132
+
133
+ This path installs this package's prebuilt, verified Release without requiring
134
+ access to a blocked npm registry. It is not permission to bypass organizational registry restrictions:
135
+ use only artifacts obtained through organizationally approved sources and
136
+ already available dependency caches. A registry ban remains in force; offline
137
+ installation does not repair TLS or prove that npm publication is healthy. The
138
+ dual-channel **publication** policy above is unchanged.
139
+
140
+ 1. Obtain explicit installation approval for the exact version and profile.
141
+ Resolve the actual DSH CLI, install anchor, `DSH_HOME` and profile directory;
142
+ do not assume a shell shim points to the Desktop's current installation.
143
+ 2. Verify the original Release tarball with an independently trusted SHA-256,
144
+ its package name/version and safe archive layout. Do not substitute a local
145
+ build or repack an existing immutable Release. Extract only the verified
146
+ artifact before executing its packaged preflight.
147
+ 3. Run `scripts/check-search-composition.mjs` against that exact profile, home
148
+ and install anchor, including any extra startup patches. Require
149
+ `supported: true`; unknown, conflicting or unsupported composition is a stop,
150
+ not permission to remove guards or rewrite the profile.
151
+ 4. Keep one writer: do not run Desktop package updates and CLI installation
152
+ concurrently. Take a private backup of installation metadata (package.json,
153
+ lockfile, bundle/patch configuration and relevant package-manager settings),
154
+ record the current version, and retain a verified rollback artifact.
155
+ Do not copy credential stores, `.env` files or browser storage. If ensuring
156
+ exclusive maintenance requires stopping the Host, obtain separate approval.
157
+ 5. Invoke the supported DSH CLI with an absolute path to the verified archive:
158
+
159
+ ```sh
160
+ dsh plugin --profile web add /absolute/path/to/verified-release.tgz --offline --ignore-scripts
161
+ ```
162
+
163
+ Replace `web` and the archive path with the approved targets. `--offline`
164
+ requires the existing cache; `--ignore-scripts` prevents package lifecycle
165
+ scripts from creating a second, uncontrolled installation/network path. If
166
+ the cache is incomplete or a dependency requires a new build, stop and report
167
+ the missing requirement. Do not silently remove these flags, change registry,
168
+ add a VPN/proxy/mirror, or fetch blocked dependencies through another channel.
169
+ Keep TLS verification enabled. Actual platform permission/approval refusals
170
+ remain authoritative; this procedure does not override them.
171
+ 6. Check the exit result and read back the installed version, lock entry and
172
+ package files against the verified archive. Re-run the composition preflight
173
+ and an appropriate import-only smoke check without activating the plugin.
174
+ Inspect all metadata differences: the CLI reconciles `dsh.profile.bundles`
175
+ and may add unrelated installed bundles. Preserve unrelated settings; stop
176
+ for review on unexpected changes and revert only changes proven to belong
177
+ to this operation, never overwrite later user edits with a whole backup.
178
+ Use the package manager, not manual copying into node_modules or Core patches.
179
+ 7. Report the installed version, checksum, backup and evidence limits. Obtain
180
+ separate restart approval before interrupting the Host or active Sessions.
181
+ Installed-on-disk and loaded-runtime are separate states: after an approved
182
+ restart, verify the loaded build and the intended behavior independently.
183
+
184
+ If installation fails, inspect the actual installed state before retrying or
185
+ rolling back; a failed command is not proof that nothing changed. A rollback
186
+ also needs reviewed, narrowly scoped metadata/dependency restoration. This
187
+ documentation change does not rewrite installed or published historical docs,
188
+ change machine-wide registry policy, or grant blanket approval for future updates.
@@ -48,6 +48,6 @@ The added regressions cover silent expiry/replacement, native final assertions,
48
48
 
49
49
  1. Complete the full verification gate and update deployment/agent evidence inventories, public export smoke and both READMEs.
50
50
  2. Add end-to-end coverage of the main router's managed metadata, fallback credentials/options, cancellations during discovery/fallback, mixed multi-query provenance, and complete unload/reload behavior.
51
- 3. Run retained exact Core-baseline fixtures, not only the development artifact. Do not infer seven-pin runtime compatibility from type checks.
51
+ 3. Run retained exact Core-baseline fixtures, not only the development artifact. Do not infer eight-pin runtime compatibility from type checks.
52
52
  4. Align the new package version, release metadata and package/archive tests.
53
53
  5. Run bounded live Copilot hosted-search and permitted-fallback acceptance separately. A successful chat request does not prove hosted search. No live profile installation, global search selection change or restart has occurred for this work.