@timurproko/a1 0.1.8-dev.322 → 0.1.8-dev.335
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.
- package/README.md +22 -11
- package/dist/cli/dispatch.js +1 -1
- package/dist/features/owned-ui/project-trust-prompt.js +1 -1
- package/dist/features/owned-ui/settings-app.js +1 -1
- package/dist/features/prompt-history/service.d.ts +31 -1
- package/dist/features/prompt-history/service.js +294 -129
- package/dist/features/prompt-history/store.d.ts +2 -1
- package/dist/features/prompt-history/store.js +17 -4
- package/dist/features/prompt-history/worker.js +6 -3
- package/dist/foundation/launch-context/index.d.ts +36 -6
- package/dist/foundation/launch-context/index.js +64 -11
- package/dist/foundation/launch-guardian/main.js +2 -1
- package/dist/foundation/release/bootstrap.d.ts +7 -0
- package/dist/foundation/release/bootstrap.js +95 -19
- package/dist/foundation/release/cohort-state.js +0 -3
- package/dist/foundation/release/dependency-certification-retention.d.ts +7 -0
- package/dist/foundation/release/dependency-certification-retention.js +88 -0
- package/dist/foundation/release/dependency-certification.d.ts +24 -0
- package/dist/foundation/release/dependency-certification.js +208 -0
- package/dist/foundation/release/dependency-layer.d.ts +3 -4
- package/dist/foundation/release/dependency-layer.js +6 -37
- package/dist/foundation/release/index.d.ts +1 -0
- package/dist/foundation/release/index.js +1 -0
- package/dist/foundation/release/release-gc.js +72 -44
- package/dist/foundation/release/release-store.d.ts +2 -0
- package/dist/foundation/release/release-store.js +4 -3
- package/dist/foundation/release/restart-certification.js +16 -5
- package/dist/foundation/release/update-launch.d.ts +6 -0
- package/dist/foundation/release/update-launch.js +17 -0
- package/dist/foundation/release/update.d.ts +2 -0
- package/dist/foundation/release/update.js +21 -27
- package/dist/foundation/release/warmup.js +16 -5
- package/dist/foundation/supervision/main.js +5 -2
- package/dist/foundation/supervision/server.js +40 -13
- package/dist/integrations/pi/components/owned-editor-ux.d.ts +1 -1
- package/dist/integrations/pi/components/owned-editor-ux.js +51 -27
- package/dist/integrations/pi/engine/adapter.d.ts +20 -0
- package/dist/integrations/pi/engine/adapter.js +223 -87
- package/dist/integrations/pi/engine/pending-delivery.d.ts +26 -0
- package/dist/integrations/pi/engine/pending-delivery.js +149 -0
- package/dist/integrations/pi/session-ui/prompt-chips.js +38 -25
- package/dist/integrations/pi/session-ui/prompt-history-controller.d.ts +0 -2
- package/dist/integrations/pi/session-ui/prompt-history-controller.js +3 -8
- package/dist/integrations/pi/session-ui/session-shell-root.d.ts +1 -1
- package/dist/integrations/pi/session-ui/session-shell-root.js +5 -1
- package/dist/integrations/pi/session-ui/session-shell.js +9 -6
- package/dist/integrations/pi/session-ui/session-viewport-controller.d.ts +2 -2
- package/dist/integrations/pi/session-ui/session-viewport-controller.js +4 -5
- package/dist/integrations/pi/session-ui/text-paste.d.ts +5 -0
- package/dist/integrations/pi/session-ui/text-paste.js +16 -0
- package/dist/integrations/pi/tui-runtime/damage-aware-terminal.d.ts +2 -2
- package/dist/integrations/pi/tui-runtime/damage-aware-terminal.js +82 -39
- package/dist/native/darwin-arm64/manifest.json +1 -1
- package/dist/native/linux-x64/manifest.json +1 -1
- package/dist/native/win32-x64/manifest.json +2 -2
- package/dist/native/win32-x64/process-guardian.exe +0 -0
- package/dist/product-identity.json +1 -1
- package/docs/architecture/internal-naming.md +5 -3
- package/docs/architecture/toolchain.md +1 -1
- package/docs/ci-release-runbook.md +45 -7
- package/docs/manual-code-streaming-cleanup.md +88 -0
- package/package.json +1 -1
|
@@ -71,7 +71,7 @@ Presentation acceptance is the reader comparing `a1 pi` with pinned Pi. `node sc
|
|
|
71
71
|
|
|
72
72
|
## Publication
|
|
73
73
|
|
|
74
|
-
One workflow publishes both channels: `.github/workflows/release.yml`. Pushes do not publish. Nightly development verification runs at `03:17 UTC`; `npm run develop` explicitly requests a numbered preview and `npm run release` explicitly requests stable publication after its version pull request
|
|
74
|
+
One workflow publishes both channels: `.github/workflows/release.yml`. Pushes do not publish. Nightly development verification runs at `03:17 UTC`; `npm run develop` explicitly requests a numbered preview and `npm run release -- patch` explicitly requests stable publication after its version pull request is manually merged; it promotes a development version to its stable core. The following development-version pull request also requires manual merge. A preview is stamped as `-dev.<merged pull-request number>` and uses npm `next` only as an internal dist-tag. New candidates pack once and are validated on Windows, Linux, and macOS; a repeated nightly verifies the exact immutable registry tarball. All publication uses provenance from the `npm-publish` environment, a preview never changes `latest`, and the stable tag, GitHub Release, and `master` are written only after npm has the package. One global non-cancelling concurrency group serializes the final registry check.
|
|
75
75
|
|
|
76
76
|
`docs/ci-release-runbook.md` is the operational reference.
|
|
77
77
|
|
|
@@ -166,15 +166,40 @@ work.
|
|
|
166
166
|
|
|
167
167
|
## Cutting a stable release
|
|
168
168
|
|
|
169
|
-
From
|
|
169
|
+
From the repository root on clean `develop` matching `origin/develop`:
|
|
170
170
|
|
|
171
171
|
```sh
|
|
172
|
-
npm run release -- patch #
|
|
172
|
+
npm run release -- patch # 0.1.8-dev -> 0.1.8; already-stable 0.1.8 -> 0.1.9
|
|
173
|
+
npm run release -- minor # 0.1.8-dev -> 0.2.0
|
|
174
|
+
npm run release -- major # 0.1.8-dev -> 1.0.0
|
|
175
|
+
npm run release -- 0.4.0 # exact stable target
|
|
173
176
|
```
|
|
174
177
|
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
+
A target is required: `npm run release` alone is a mutation-free usage error.
|
|
179
|
+
`patch` preserves prerelease-aware semantics, including `0.1.8-dev.123 -> 0.1.8`.
|
|
180
|
+
The command reports its source, stable target, and prospective reopening before
|
|
181
|
+
preparing anything.
|
|
182
|
+
|
|
183
|
+
1. The stable-version edit is committed in an owned detached worktree beneath
|
|
184
|
+
`.worktrees/`. Only this package's manifest and root lockfile version change.
|
|
185
|
+
2. Follow the printed PR URL, wait for required CI, perform local validation, and
|
|
186
|
+
**merge manually after acceptance**. The helper does not merge PRs or enable
|
|
187
|
+
auto-merge. It polls for actual merge with a bounded 30-minute wait.
|
|
188
|
+
3. The helper verifies the merged version and source SHA against authoritative
|
|
189
|
+
develop, then explicitly dispatches stable publication for that exact source.
|
|
190
|
+
A changed source is an error, not permission to substitute a newer commit.
|
|
191
|
+
4. Only after verified publication of `0.1.8` does it prepare a separate PR for
|
|
192
|
+
`0.1.9-dev`. Validate and manually merge that PR as well. Until then the helper
|
|
193
|
+
reports development reopening as incomplete.
|
|
194
|
+
|
|
195
|
+
Closed PRs, timeout, cancellation, and query failures retain identifiable phase
|
|
196
|
+
work for inspection. Conflicting existing branches/PRs are not overwritten;
|
|
197
|
+
matching pending PRs can be observed again without replacing them. Worktrees
|
|
198
|
+
retained by an earlier attempt are not removed by a later invocation. Cleanup
|
|
199
|
+
only removes clean, owned, confirmed-merged phase worktrees and unchanged remote
|
|
200
|
+
phase branches. The caller is never hard-reset: a final fast-forward is attempted
|
|
201
|
+
only when its branch, original HEAD, and cleanliness remain unchanged. Otherwise
|
|
202
|
+
preserve local work and synchronize manually with the reported remote state.
|
|
178
203
|
|
|
179
204
|
Stable publication builds the process guardian on all supported platforms, packs
|
|
180
205
|
once, runs the complete suite against those exact bytes on Windows, Linux, and
|
|
@@ -200,8 +225,21 @@ Rules that do not bend:
|
|
|
200
225
|
path, and use the confirmed apply mode only for an accepted mutable policy change.
|
|
201
226
|
- **Nightly documentation review fails:** inspect the reported paths and rules, identify the introducing merge from the nightly interval, and repair the invariant before unrelated work proceeds.
|
|
202
227
|
- **Development publication fails:** fix the cause and rerun `npm run develop`; an npm version that already exists is never overwritten.
|
|
203
|
-
- **Stable
|
|
204
|
-
- **Stable publication is uncertain
|
|
228
|
+
- **Stable preparation stops before dispatch:** inspect the reported version PR/worktree. After preserving work, an exact matching pending PR can be observed again. If develop already declares the prepared stable version, use its exact target (for example `npm run release -- 0.1.8`) only after verifying that source's merged PR and confirming the registry/tag guards still permit it. Do not use `patch` from stable develop to retry the same version: that deliberately selects the next patch.
|
|
229
|
+
- **Stable publication fails or is uncertain:** inspect the workflow, registry version/digest, tag, and release before choosing recovery. No reopening PR is prepared. Never republish immutable bytes or move a release tag.
|
|
230
|
+
- **Stable publication succeeded but reopening stops:** the stable version is already published. Inspect and finish the reported next-development PR manually; do not repeat stable publication. If no reopening PR was created, prepare the next-development version through a separately validated manual PR after inspecting remote state.
|
|
231
|
+
|
|
232
|
+
## Safe release-command validation
|
|
233
|
+
|
|
234
|
+
Use the isolated harness rather than a live release to validate changes to this command:
|
|
235
|
+
|
|
236
|
+
```sh
|
|
237
|
+
npm exec --no -- vitest run test/repository-governance/release-target.test.ts test/repository-governance/release-command.test.ts --maxWorkers=1 --minWorkers=1
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
It uses disposable local Git repositories and fake GitHub, registry, and publication
|
|
241
|
+
services. It does not publish a package or create production version PRs. A real
|
|
242
|
+
release remains a separate deliberate operation.
|
|
205
243
|
|
|
206
244
|
## Branch protection rationale
|
|
207
245
|
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# Bounded code-streaming and hyperlink cleanup review
|
|
2
|
+
|
|
3
|
+
This candidate finishes the hyperlink portion of `eliminate-code-block-streaming-flicker`
|
|
4
|
+
(specification PR #318), following the partial implementation in #321. It is a prerequisite
|
|
5
|
+
for `keep-streaming-ui-responsive-during-selection` (#325), not that larger change's completed
|
|
6
|
+
selection/wheel performance fix.
|
|
7
|
+
|
|
8
|
+
## What changed
|
|
9
|
+
|
|
10
|
+
- Candidate-looking text (paths, dotted identifiers) no longer vetoes a proven followed shift.
|
|
11
|
+
Real OSC 8 links, unsafe escapes, images, overlays, and selections retain their conservative
|
|
12
|
+
movement rules.
|
|
13
|
+
- Ordinary streamed text changes no longer request hyperlink cleanup.
|
|
14
|
+
- Pointer transitions identify the former hovered row. Editor link deletion and discarded
|
|
15
|
+
presentation state retain explicit cleanup requests, including when replacement content
|
|
16
|
+
has no links. Unscoped cleanup considers every previously linked row; a missing pointer
|
|
17
|
+
report is not treated as proof that no host decoration exists.
|
|
18
|
+
- Cleanup paints affected and changed rows without manufacturing an erase-display. After
|
|
19
|
+
unknown paint or lost geometry, it waits for a complete safe frame instead of guessing.
|
|
20
|
+
- Same-geometry forced frames preserve current cells without repainting unchanged rows.
|
|
21
|
+
Structural entry, resize, and unsafe-protocol fallbacks are still conservative.
|
|
22
|
+
|
|
23
|
+
## Automated evidence
|
|
24
|
+
|
|
25
|
+
`test/fixtures/rendering/baseline-code-streaming.json` is the pre-production-change capture
|
|
26
|
+
from `6c5af810`, repeated twice with no production diff. Its synthetic content and cell hashes
|
|
27
|
+
contain no private session input. The fixture predates the added dual-synchronization summary
|
|
28
|
+
field; it remains a historical baseline rather than a regenerated candidate result.
|
|
29
|
+
|
|
30
|
+
| Bare-A1 fullscreen workload | Baseline post-startup clears | Candidate post-startup clears |
|
|
31
|
+
| --- | ---: | ---: |
|
|
32
|
+
| Streamed fenced code | 3 | 0 |
|
|
33
|
+
| Path-bearing prose | 3 | 0 |
|
|
34
|
+
| Tall live tail | 0 | 0 |
|
|
35
|
+
|
|
36
|
+
The deterministic producers use a shared scripted clock so cold imports do not advance spinner
|
|
37
|
+
or presentation timers unpredictably. Independent comparison processes remain outside the owned
|
|
38
|
+
damage adapter. Current budgets also fail candidate-only fallback, repaint of settled rows,
|
|
39
|
+
stale final content, or divergent final cells with synchronization honored versus ignored.
|
|
40
|
+
The dual-model replay reuses producer bytes rather than launching duplicate producers.
|
|
41
|
+
|
|
42
|
+
Generate current evidence (non-interactive; writes only the named report):
|
|
43
|
+
|
|
44
|
+
```sh
|
|
45
|
+
cd D:/Git/a1/.worktrees/finish-bounded-link-cleanup && node --import tsx scripts/pi/report-code-streaming.ts --phase current --repeat 2 --output .artifacts/rendering/code-streaming-current.json
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
The baseline mode rejects dirty production sources. Do not replace the committed baseline with
|
|
49
|
+
post-fix results. Repeated reports compare cells, row damage, decisions, and budgets, not elapsed
|
|
50
|
+
machine timings. This is a paint regression check, not a CPU or input-latency benchmark.
|
|
51
|
+
|
|
52
|
+
## Physical Windows Terminal review
|
|
53
|
+
|
|
54
|
+
Use the candidate branch `fix/bounded-hyperlink-cleanup` and record its exact `git rev-parse HEAD`.
|
|
55
|
+
Build and start the owned UI through the color-preserving shell entry:
|
|
56
|
+
|
|
57
|
+
```sh
|
|
58
|
+
cd D:/Git/a1/.worktrees/finish-bounded-link-cleanup && npm run build && ./scripts/dev
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
1. Ask the agent, without writing files, to produce a long fenced TypeScript example containing
|
|
62
|
+
`obj.method`, `package.json`, and `./src/index.ts`, followed by a short explanation and a real
|
|
63
|
+
Markdown hyperlink. Check that ordinary code/path streaming no longer blanks the screen.
|
|
64
|
+
2. Hover a real hyperlink, then scroll it away without moving the pointer. Repeat with a
|
|
65
|
+
terminal-detected URL and file-like text inside code. Try both short and wrapped links,
|
|
66
|
+
duplicate targets, blank rows replacing links, and a smaller terminal.
|
|
67
|
+
3. Move off a hovered link, select linked text, wheel/auto-scroll during selection, release,
|
|
68
|
+
and copy. Check exact copied text, normal link colors/activation, and no leftover solid
|
|
69
|
+
underlines on unrelated text, padding, or controls.
|
|
70
|
+
4. Paste a URL chip into the editor and delete it. Open and close a covering overlay, and resize
|
|
71
|
+
while a link is visible. Check that obsolete targets/underlines are removed and restored
|
|
72
|
+
links have their correct targets.
|
|
73
|
+
5. Verify that the dock stays intact and terminal mouse/cursor behavior is restored on exit.
|
|
74
|
+
|
|
75
|
+
Use the same geometry for the independent comparison profile:
|
|
76
|
+
|
|
77
|
+
```sh
|
|
78
|
+
cd D:/Git/a1/.worktrees/finish-bounded-link-cleanup && npm run build && ./scripts/dev pi
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Record terminal/version, geometry, synchronized-update support, explicit versus auto-detected
|
|
82
|
+
link case, commit, and pass/fail. Test both before and after any pointer report: lack of a report
|
|
83
|
+
must not be interpreted as evidence of an absent pointer.
|
|
84
|
+
|
|
85
|
+
**Known gaps:** native Windows Terminal hover rasterization cannot be certified by headless cell
|
|
86
|
+
replay. Visual acceptance and merge authorization are pending. The broader selection/wheel
|
|
87
|
+
scheduling and collapsed-tool preparation optimizations have not been implemented in this PR.
|
|
88
|
+
Do not merge on automated results alone; a ghost-underline or flicker regression blocks acceptance.
|
package/package.json
CHANGED