@timurproko/a1 0.1.8-dev.290 → 0.1.8-dev.322
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 +21 -0
- package/bin/guardian.js +4 -3
- package/bin/ui.js +4 -2
- package/bin/update-recovery.js +3 -1
- package/dist/composition/owned-ui.js +13 -1
- package/dist/contracts/owned-ui/index.d.ts +1 -0
- package/dist/contracts/owned-ui/index.js +1 -0
- package/dist/contracts/owned-ui/prompt-history.d.ts +37 -0
- package/dist/contracts/owned-ui/prompt-history.js +23 -0
- package/dist/features/launch/profile-paths.d.ts +2 -0
- package/dist/features/launch/profile-paths.js +11 -0
- package/dist/features/prompt-history/index.d.ts +2 -0
- package/dist/features/prompt-history/index.js +2 -0
- package/dist/features/prompt-history/paths.d.ts +4 -0
- package/dist/features/prompt-history/paths.js +16 -0
- package/dist/features/prompt-history/service.d.ts +24 -0
- package/dist/features/prompt-history/service.js +260 -0
- package/dist/features/prompt-history/store.d.ts +15 -0
- package/dist/features/prompt-history/store.js +166 -0
- package/dist/features/prompt-history/worker.d.ts +9 -0
- package/dist/features/prompt-history/worker.js +42 -0
- package/dist/foundation/launch-context/index.d.ts +29 -0
- package/dist/foundation/launch-context/index.js +83 -0
- package/dist/foundation/launch-guardian/main.js +4 -3
- package/dist/foundation/release/bootstrap.d.ts +1 -1
- package/dist/foundation/release/bootstrap.js +18 -12
- package/dist/foundation/release/cohort-state.d.ts +1 -0
- package/dist/foundation/release/cohort-state.js +4 -0
- package/dist/foundation/release/release-gc.js +2 -2
- package/dist/foundation/release/release-store.js +10 -3
- package/dist/foundation/release/release.d.ts +3 -1
- package/dist/foundation/release/release.js +7 -3
- package/dist/foundation/release/restart-certification.d.ts +1 -0
- package/dist/foundation/release/restart-certification.js +5 -0
- package/dist/foundation/release/update-recovery.d.ts +2 -0
- package/dist/foundation/release/update-recovery.js +4 -0
- package/dist/foundation/release/update.js +5 -0
- package/dist/foundation/release/warmup.d.ts +1 -1
- package/dist/foundation/release/warmup.js +5 -4
- package/dist/foundation/startup/startup-runtime.js +13 -11
- package/dist/foundation/supervision/main.js +8 -7
- package/dist/integrations/pi/components/editor-interaction.d.ts +38 -0
- package/dist/integrations/pi/components/editor-interaction.js +1 -0
- package/dist/integrations/pi/components/history-editor-loader.d.ts +5 -0
- package/dist/integrations/pi/components/history-editor-loader.js +5 -0
- package/dist/integrations/pi/components/index.d.ts +1 -0
- package/dist/integrations/pi/components/index.js +1 -0
- package/dist/integrations/pi/components/owned-editor-ux.d.ts +2 -1
- package/dist/integrations/pi/components/owned-editor-ux.js +95 -22
- package/dist/integrations/pi/components/shell-editor-autocomplete.js +12 -1
- package/dist/integrations/pi/components/shell-presenters-info.d.ts +9 -2
- package/dist/integrations/pi/components/shell-presenters-info.js +35 -4
- package/dist/integrations/pi/components/shell-selectors-dialogs.d.ts +3 -2
- package/dist/integrations/pi/components/shell-selectors-dialogs.js +8 -5
- package/dist/integrations/pi/components/shell-shared-facade.d.ts +15 -2
- package/dist/integrations/pi/components/upstream/assets/earendil-image.json +12 -0
- package/dist/integrations/pi/components/upstream/components/earendil-announcement.js +25 -2
- package/dist/integrations/pi/components/upstream/components/owned-editor.d.ts +13 -9
- package/dist/integrations/pi/components/upstream/components/owned-editor.js +137 -133
- package/dist/integrations/pi/components/upstream/history/editor-core.d.ts +280 -0
- package/dist/integrations/pi/components/upstream/history/editor-core.js +2062 -0
- package/dist/integrations/pi/components/upstream/history/kill-ring.d.ts +32 -0
- package/dist/integrations/pi/components/upstream/history/kill-ring.js +48 -0
- package/dist/integrations/pi/components/upstream/history/printable-key.d.ts +1 -0
- package/dist/integrations/pi/components/upstream/history/printable-key.js +40 -0
- package/dist/integrations/pi/components/upstream/history/text-helpers.d.ts +14 -0
- package/dist/integrations/pi/components/upstream/history/text-helpers.js +28 -0
- package/dist/integrations/pi/components/upstream/history/undo-stack.d.ts +22 -0
- package/dist/integrations/pi/components/upstream/history/undo-stack.js +36 -0
- package/dist/integrations/pi/components/upstream/history/word-navigation.d.ts +24 -0
- package/dist/integrations/pi/components/upstream/history/word-navigation.js +100 -0
- package/dist/integrations/pi/engine/adapter.d.ts +13 -1
- package/dist/integrations/pi/engine/adapter.js +86 -25
- package/dist/integrations/pi/engine/changelog.d.ts +2 -0
- package/dist/integrations/pi/engine/changelog.js +63 -0
- package/dist/integrations/pi/engine/resources/changelog.json +12 -0
- package/dist/integrations/pi/engine/workflow-controllers.d.ts +1 -1
- package/dist/integrations/pi/engine/workflows.d.ts +1 -1
- package/dist/integrations/pi/session-ui/prompt-chips.d.ts +4 -1
- package/dist/integrations/pi/session-ui/prompt-chips.js +40 -13
- package/dist/integrations/pi/session-ui/prompt-history-controller.d.ts +30 -0
- package/dist/integrations/pi/session-ui/prompt-history-controller.js +147 -0
- package/dist/integrations/pi/session-ui/session-shell-root.d.ts +33 -0
- package/dist/integrations/pi/session-ui/session-shell-root.js +68 -74
- package/dist/integrations/pi/session-ui/session-shell.d.ts +1 -1
- package/dist/integrations/pi/session-ui/session-shell.js +98 -12
- package/dist/integrations/pi/session-ui/session-viewport-controller.d.ts +5 -0
- package/dist/integrations/pi/session-ui/session-viewport-controller.js +21 -15
- package/dist/integrations/pi/tui-runtime/damage-aware-terminal.d.ts +7 -0
- package/dist/integrations/pi/tui-runtime/damage-aware-terminal.js +7 -6
- 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.d.ts +2 -2
- package/dist/product-identity.js +3 -36
- package/dist/product-identity.json +1 -22
- package/dist/ui/components/transcript-viewport.d.ts +8 -0
- package/dist/ui/components/transcript-viewport.js +23 -2
- package/dist/ui/components/visible-hyperlinks.d.ts +7 -0
- package/dist/ui/components/visible-hyperlinks.js +1 -0
- package/dist/ui/settings/declarations.js +19 -0
- package/dist/ui/settings/sections.js +11 -1
- package/dist/ui/settings/session.js +13 -4
- package/docs/architecture/boundaries.md +2 -0
- package/docs/architecture/history-editor-provenance.md +96 -0
- package/docs/architecture/internal-naming.md +89 -0
- package/docs/architecture/project-structure.md +1 -0
- package/docs/architecture/resource-and-data-policy.md +27 -1
- package/docs/architecture/toolchain.md +15 -1
- package/docs/features/prompt-history.md +149 -0
- package/package.json +8 -3
|
@@ -13,6 +13,7 @@ src/
|
|
|
13
13
|
features/
|
|
14
14
|
launch/ launch profiles, profile paths, and runtime selection
|
|
15
15
|
owned-ui/ owned screens, settings application, diagnostics, and runtime lifecycle
|
|
16
|
+
prompt-history/ profile-isolated prompt retention and bounded SQLite worker lifecycle
|
|
16
17
|
workspace/ multi-agent presentation, reducer state, routing, and persistence orchestration
|
|
17
18
|
contracts/
|
|
18
19
|
agent-engine/ dependency-free agent engine, session, package, and capability ports
|
|
@@ -31,7 +31,8 @@ Every asynchronous consumer must implement a finite queue or window. Backpressur
|
|
|
31
31
|
| Class | Examples | Storage policy |
|
|
32
32
|
|---|---|---|
|
|
33
33
|
| Workspace metadata | IDs, names, lifecycle, capability versions, topology revisions, recovery references | May persist in the control store |
|
|
34
|
-
| Structured payloads | Messages, tool calls, snapshots, attachments | Bound and process;
|
|
34
|
+
| Structured payloads | Messages, tool calls, snapshots, attachments | Bound and process; arbitrary payload persistence remains unsupported |
|
|
35
|
+
| User-authored prompt recall | Canonical interactive input and bounded provenance | May persist only through the profile-isolated prompt-history policy below, never in the control store |
|
|
35
36
|
| Terminal content | PTY bytes, scrollback, selection, rendered cells | Never persist in A1's control store or diagnostics |
|
|
36
37
|
| Host topology metadata | Window/tab/pane/session IDs, layout shape, dimensions, revision | May persist; not terminal content |
|
|
37
38
|
| Native proof evidence | Artifact hashes, source revisions, workloads, latency/resource measurements, paint diagnostics | May persist in versioned evidence files without terminal content |
|
|
@@ -42,6 +43,31 @@ Every asynchronous consumer must implement a finite queue or window. Backpressur
|
|
|
42
43
|
|
|
43
44
|
Sanitization must classify before logging or storing. Unknown or untyped values are potentially sensitive by default and must not be persisted. Terminal bytes must never be written to logs as a debugging shortcut.
|
|
44
45
|
|
|
46
|
+
## Typed prompt-history retention
|
|
47
|
+
|
|
48
|
+
The `prompt-history` feature owns only reusable interactive user input, not
|
|
49
|
+
structured-message archives. It stores one independent profile database under
|
|
50
|
+
`<effective-home>/.a1/data/history`, or `<A1_DATA_DIR>/history` when explicitly
|
|
51
|
+
overridden, never agent resources or cache/release directories. The default home
|
|
52
|
+
follows launch-profile resolution, including `A1_PROFILE_HOME`; other product
|
|
53
|
+
data paths are unchanged. Text is unencrypted and potentially sensitive. Retain up to 100 unique entries (configured
|
|
54
|
+
10-100), at most 1 MiB per entry and 8 MiB total canonical text. Background queues
|
|
55
|
+
are limited to 32 writes/8 MiB per instance; reads are coalesced, lock retries are
|
|
56
|
+
bounded to one second off-thread, and graceful shutdown drains for at most two
|
|
57
|
+
seconds. SQLite page/journal limits and a 64 MiB maintenance threshold bound
|
|
58
|
+
physical growth separately from text retention.
|
|
59
|
+
|
|
60
|
+
Only typed canonical text, submission identity, recency/timestamp, input kind,
|
|
61
|
+
and bounded cwd/session provenance are allowed. No image bytes, transformed
|
|
62
|
+
agent prompts, environment/credential copies, tool results, terminal streams, or
|
|
63
|
+
private input in diagnostics are permitted. Disabling persistence is next-start
|
|
64
|
+
and does not erase data or stop other live instances. Upgrades, ordinary npm
|
|
65
|
+
uninstall/reinstall, and cache/release cleanup must not touch history. The new
|
|
66
|
+
default starts fresh without probing, importing, or deleting the old platform
|
|
67
|
+
store. Any old-store removal is a separate manual operation after its users have
|
|
68
|
+
stopped, not startup or cleanup behavior. See [prompt history](../features/prompt-history.md) for
|
|
69
|
+
retention, failure semantics, profile identity, and stopped-instance removal.
|
|
70
|
+
|
|
45
71
|
## Required architectural outcomes
|
|
46
72
|
|
|
47
73
|
- Structured/RPC semantics must not be inferred from ANSI text, terminal timing, or visual content.
|
|
@@ -82,7 +82,7 @@ These paths are A1 control and release state, not Pi profile roots. All are over
|
|
|
82
82
|
| Purpose | Override | Windows default | Unix default |
|
|
83
83
|
|---|---|---|---|
|
|
84
84
|
| Config | `A1_CONFIG_DIR` | `%APPDATA%\\a1` | `$XDG_CONFIG_HOME/a1` or `~/.config/a1` |
|
|
85
|
-
|
|
|
85
|
+
| Control/release data | `A1_DATA_DIR` | `%LOCALAPPDATA%\\a1` | `$XDG_DATA_HOME/a1` or `~/.local/share/a1` |
|
|
86
86
|
| Runtime | `A1_RUNTIME_DIR` | `%LOCALAPPDATA%\\a1\\runtime` | `$XDG_RUNTIME_DIR/a1` or `<data>/runtime` |
|
|
87
87
|
| Database | `A1_DATABASE_PATH` | `<data>/control.sqlite3` | `<data>/control.sqlite3` |
|
|
88
88
|
| Endpoint | `A1_ENDPOINT` | runtime-scoped `a1-*` named pipe | `<runtime>/supervisor.sock` |
|
|
@@ -96,3 +96,17 @@ Do **not** remove `~/.a1/agent`; it is A1's current Pi profile root. `~/.pi/agen
|
|
|
96
96
|
The obsolete npm package `@timurproko/addone` is deprecated with the registry message `This package is obsolete. Use @timurproko/a1 instead.` It is not a current identity, compatibility channel, or rollback source. Whole-package unpublication was rejected by npm policy; any later removal is owner-controlled registry administration and does not change the A1 runtime contract.
|
|
97
97
|
|
|
98
98
|
The launch-profile feature separately owns A1's `~/.a1/agent` root and preserves ordinary Pi resolution through `~/.pi/agent`.
|
|
99
|
+
|
|
100
|
+
## Internal naming validation
|
|
101
|
+
|
|
102
|
+
The required PR naming job inspects complete new and changed source files. `npm run check:names` performs the full tracked audit, also required by nightly full-release validation. See [internal naming and clean cutover](internal-naming.md) for public/private environment ownership, required checks, and protected user data.
|
|
103
|
+
|
|
104
|
+
### Prompt history
|
|
105
|
+
|
|
106
|
+
Prompt history has a separate default: `<effective-home>/.a1/data/history/<profile-id>.sqlite3`
|
|
107
|
+
on Windows, Linux, and macOS. The effective home follows launch-profile resolution
|
|
108
|
+
(`A1_PROFILE_HOME` or the OS home), not `XDG_DATA_HOME`. An explicit `A1_DATA_DIR`
|
|
109
|
+
continues to select `<A1_DATA_DIR>/history` as well as the control/release data root.
|
|
110
|
+
The home-based history default does not relocate the paths above or the compile
|
|
111
|
+
cache at `<data>/cache/compile`. See [prompt history](../features/prompt-history.md)
|
|
112
|
+
for the deliberate fresh start without migration, privacy, and manual removal.
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
# Persistent prompt history
|
|
2
|
+
|
|
3
|
+
Bare A1 recalls recent prompts across sessions and projects within the same A1
|
|
4
|
+
profile. It is input recall, not conversation recovery or agent memory. The Pi
|
|
5
|
+
comparison (`a1 pi`) retains its ordinary current-session history.
|
|
6
|
+
|
|
7
|
+
## Recall
|
|
8
|
+
|
|
9
|
+
Use Up/Down at the editor's normal history boundaries. Up enters older prompts
|
|
10
|
+
with the caret at the end; Down enters newer prompts at the beginning. Moving
|
|
11
|
+
past the newest restores your draft, including its cursor and live pasted text.
|
|
12
|
+
Multiline cursor movement and autocomplete keep their existing priority.
|
|
13
|
+
|
|
14
|
+
The existing editor border shows `History 100/100` for the newest of 100 entries
|
|
15
|
+
and `History 1/100` for the oldest. The label uses the status bar's neutral grey
|
|
16
|
+
(`dim` theme role), independently of the thinking/bash colors on the input bars. Repeated prompts move forward instead of
|
|
17
|
+
creating duplicates. Other instances refresh in the background; the selected
|
|
18
|
+
history and its count stay fixed until you leave that browse cycle. An
|
|
19
|
+
extension-provided custom editor keeps its own behavior; the default editor is
|
|
20
|
+
resynchronized when restored.
|
|
21
|
+
|
|
22
|
+
Ordinary prompts, steering, follow-ups, queued inputs, nonempty bash commands,
|
|
23
|
+
and user-entered skill/template/extension prompt routes are eligible. Opening
|
|
24
|
+
settings or session/workflow screens does not add history. Loading a transcript,
|
|
25
|
+
retrying a dispatch internally, draining a queue, or displaying a suggestion does
|
|
26
|
+
not create another entry. An explicit user submission is retained even if the
|
|
27
|
+
provider later rejects it or the turn is interrupted.
|
|
28
|
+
|
|
29
|
+
Text pastes, URL targets, and file paths remain reusable after restart. History
|
|
30
|
+
keeps the user invocation before template/extension expansion, not the expanded
|
|
31
|
+
request. Image-bearing prompts retain only their text; images are not reattached.
|
|
32
|
+
Image-only prompts do not create saved entries. No v2, Pi, or Claude history is
|
|
33
|
+
imported automatically.
|
|
34
|
+
|
|
35
|
+
## Storage and privacy
|
|
36
|
+
|
|
37
|
+
| Platform | Default durable location |
|
|
38
|
+
|---|---|
|
|
39
|
+
| Windows | `%USERPROFILE%/.a1/data/history/<profile-id>.sqlite3` |
|
|
40
|
+
| Linux and macOS | `~/.a1/data/history/<profile-id>.sqlite3` |
|
|
41
|
+
| Explicit override | `<A1_DATA_DIR>/history/<profile-id>.sqlite3` |
|
|
42
|
+
|
|
43
|
+
The default uses A1's effective profile home: `A1_PROFILE_HOME` when set, otherwise
|
|
44
|
+
the operating-system home. A custom agent-profile directory changes the history
|
|
45
|
+
identity, not this default root. `A1_DATA_DIR` takes precedence for storage;
|
|
46
|
+
`XDG_DATA_HOME` does not redirect default history. Control metadata, settings,
|
|
47
|
+
agent resources, releases, logs, runtime files, and caches keep their existing
|
|
48
|
+
locations.
|
|
49
|
+
|
|
50
|
+
**The home-based default starts fresh.** Previous versions used
|
|
51
|
+
`%LOCALAPPDATA%/a1/history` on Windows, or `$XDG_DATA_HOME/a1/history` /
|
|
52
|
+
`~/.local/share/a1/history` on Unix. A1 does not probe, import, merge, delete, or
|
|
53
|
+
fall back to those stores. Explicit `A1_DATA_DIR` selections still work normally.
|
|
54
|
+
Old and new releases using different roots do not synchronize history.
|
|
55
|
+
|
|
56
|
+
The profile filename is `a1-` followed by a SHA-256 digest of a versioned tuple
|
|
57
|
+
containing the launch kind and normalized effective agent-profile path. It is
|
|
58
|
+
independent of project, session, checkout, and release. Windows ordinary case and
|
|
59
|
+
separator variants normalize together. Different profile roots use different
|
|
60
|
+
files. Moving a profile, unresolved symlink aliases, or selecting a different
|
|
61
|
+
data root can select a different history; A1 never silently merges or imports it.
|
|
62
|
+
|
|
63
|
+
The database is separate from `control.sqlite3`, agent resources, and disposable
|
|
64
|
+
caches. Upgrades, ordinary npm uninstall/reinstall, release rollback, cache cleanup,
|
|
65
|
+
and conversation deletion do not clear it. Reusing saved history requires the
|
|
66
|
+
same profile and history root; explicitly deleting user data still removes it.
|
|
67
|
+
SQLite may keep `-wal` and `-shm` sidecars beside the database.
|
|
68
|
+
|
|
69
|
+
**History is unencrypted potentially sensitive user text.** Owner permissions
|
|
70
|
+
are restricted where supported; Windows uses inherited ACLs at the selected
|
|
71
|
+
history directory. Review parent-directory permissions if you customize your home
|
|
72
|
+
or override root. These protections do not make it safe to submit secrets.
|
|
73
|
+
Credential files, image data, arbitrary environment values, assistant/tool output, and terminal
|
|
74
|
+
streams are not copied into this store. Prompt content and private provenance
|
|
75
|
+
must not appear in history diagnostics or test evidence.
|
|
76
|
+
|
|
77
|
+
## Settings and limits
|
|
78
|
+
|
|
79
|
+
The History section in `/settings` provides:
|
|
80
|
+
|
|
81
|
+
- **Persistent history:** on by default; applies on the next start. Off disables
|
|
82
|
+
storage and cross-session recall for subsequent launches, not current-session
|
|
83
|
+
recovery. Existing enabled instances keep running until closed.
|
|
84
|
+
- **History limit:** 10-100 in increments of 10, default 100; applies when a new
|
|
85
|
+
enabled instance starts. All writers then use that profile store's updated
|
|
86
|
+
retention limit. Raising the limit cannot restore pruned entries.
|
|
87
|
+
|
|
88
|
+
The settings use A1's existing settings document, not Pi's settings or a separate
|
|
89
|
+
history configuration file. Disabling persistence does not delete saved data;
|
|
90
|
+
re-enabling makes compatible retained entries available again.
|
|
91
|
+
|
|
92
|
+
Additional bounds protect memory and disk:
|
|
93
|
+
|
|
94
|
+
- At most 1 MiB UTF-8 per persisted prompt, never silently truncated.
|
|
95
|
+
- At most 8 MiB retained canonical text, evicting oldest entries even below the
|
|
96
|
+
configured count.
|
|
97
|
+
- At most 32 queued/in-flight writes and 8 MiB queued text per instance.
|
|
98
|
+
- Provenance: up to 8 KiB cwd and 256 bytes session identity; oversized optional
|
|
99
|
+
provenance is omitted.
|
|
100
|
+
- Short off-thread transactions, a one-second lock retry window, and coalesced
|
|
101
|
+
refresh with at most one read in flight.
|
|
102
|
+
- SQLite page/journal limits and a 64 MiB database/sidecar maintenance threshold;
|
|
103
|
+
text limits exclude transient SQLite overhead.
|
|
104
|
+
|
|
105
|
+
Persistence failure leaves prompt execution and local recall usable. A corrupt,
|
|
106
|
+
wrong-profile, or newer-schema database is preserved, not silently recreated.
|
|
107
|
+
A committed entry survives restart. A hard kill before asynchronous commit can
|
|
108
|
+
lose the newest queued entries. Graceful exit attempts to drain writes within
|
|
109
|
+
two seconds and reports an incomplete flush without preventing exit.
|
|
110
|
+
|
|
111
|
+
## Remove saved history
|
|
112
|
+
|
|
113
|
+
First close **every instance using the selected profile**. Then remove only that
|
|
114
|
+
profile's `.sqlite3` file and its matching `-wal` and `-shm` sidecars, if present.
|
|
115
|
+
Do not delete an open database, the whole `.a1` directory, or the whole
|
|
116
|
+
application-data root. Disabling the setting alone is not an erase operation.
|
|
117
|
+
There is no interactive clear/export command in this release.
|
|
118
|
+
|
|
119
|
+
Removing a former default store is likewise a one-time manual cleanup, not an
|
|
120
|
+
application feature. Wait until you have switched to the new version and closed
|
|
121
|
+
all instances using the old store; an older running version can otherwise keep
|
|
122
|
+
using or recreate it. Remove only the identified old profile database and matching
|
|
123
|
+
sidecars, not other profiles or either application's caches.
|
|
124
|
+
|
|
125
|
+
## Manual acceptance
|
|
126
|
+
|
|
127
|
+
Build the checkout, then launch it through `./scripts/dev`. Use an isolated
|
|
128
|
+
`A1_DATA_DIR` for disposable history checks; keep that same directory on each
|
|
129
|
+
restart and in both concurrent terminals. The development launcher always sets
|
|
130
|
+
an isolated `A1_DATA_DIR`; to try the home-based location in that launcher,
|
|
131
|
+
explicitly select `A1_DATA_DIR=<effective-home>/.a1/data` and keep
|
|
132
|
+
`A1_DATABASE_PATH` in a separate disposable directory so control metadata is not
|
|
133
|
+
placed beside history. For a history-only review, `NODE_DISABLE_COMPILE_CACHE=1`
|
|
134
|
+
also avoids creating compile-cache files under that explicitly overridden root.
|
|
135
|
+
The focused path/composition tests cover normal no-override selection. Test:
|
|
136
|
+
|
|
137
|
+
1. Submit two text prompts and one repeated prompt; start `/new`, then restart.
|
|
138
|
+
The latest unique prompts remain recallable.
|
|
139
|
+
2. Browse multiline input with a draft present. Check v2 caret placement,
|
|
140
|
+
newest/oldest numbering, and draft restoration.
|
|
141
|
+
3. Submit from a second instance while the first browses. The first selection
|
|
142
|
+
stays fixed; the update appears on a later safe browse cycle.
|
|
143
|
+
4. Recall pasted text after restart; image tokens must not promise reattachment.
|
|
144
|
+
5. Save both History settings, restart, and verify effective values and opt-out.
|
|
145
|
+
6. Use a second isolated effective profile and verify no sharing. Run
|
|
146
|
+
`./scripts/dev pi` and verify its ordinary history/editor remain unchanged.
|
|
147
|
+
|
|
148
|
+
Source ownership and differential editor evidence are described in
|
|
149
|
+
[history-editor-provenance.md](../architecture/history-editor-provenance.md).
|
package/package.json
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@timurproko/a1",
|
|
3
|
-
"version": "0.1.8-dev.
|
|
3
|
+
"version": "0.1.8-dev.322",
|
|
4
4
|
"description": "Standalone terminal workspace for supervised native and managed agents",
|
|
5
5
|
"type": "module",
|
|
6
|
+
"privateLaunchContract": "neutral-launch-v1",
|
|
6
7
|
"packageManager": "npm@11.13.0",
|
|
7
8
|
"bin": {
|
|
8
9
|
"a1": "bin/cli.js"
|
|
@@ -26,7 +27,9 @@
|
|
|
26
27
|
"build": "npm run clean && tsc -p tsconfig.build.json && node scripts/development/build-process-guardian.mjs && node scripts/release/generate-runtime-payload-inventory.mjs",
|
|
27
28
|
"build:process-guardian": "node scripts/development/build-process-guardian.mjs",
|
|
28
29
|
"typecheck": "tsgo -p tsconfig.json --noEmit",
|
|
29
|
-
"check:architecture": "node scripts/governance/check-architecture.mjs && node scripts/governance/
|
|
30
|
+
"check:architecture": "node scripts/governance/check-architecture.mjs && node scripts/governance/check-product-identity-boundaries.mjs && node scripts/governance/check-package-identity.mjs && node scripts/governance/check-pinned-pi-source-ledger.mjs && node scripts/governance/check-terminal-host-provenance.mjs",
|
|
31
|
+
"check:names": "node scripts/governance/product-identifier-policy.mjs --check",
|
|
32
|
+
"check:names:changed": "node scripts/governance/product-identifier-policy.mjs --check --selection .artifacts/validation/impact.json",
|
|
30
33
|
"check:code-documentation": "node scripts/governance/check-code-documentation.mjs --mode full",
|
|
31
34
|
"check:code-documentation:changed": "node scripts/release/run-changed-documentation.mjs",
|
|
32
35
|
"select:validation-impact": "node scripts/release/select-validation-impact.mjs",
|
|
@@ -70,6 +73,7 @@
|
|
|
70
73
|
"undici": "8.9.0"
|
|
71
74
|
},
|
|
72
75
|
"devDependencies": {
|
|
76
|
+
"@lezer/python": "1.1.19",
|
|
73
77
|
"@types/cross-spawn": "6.0.6",
|
|
74
78
|
"@types/node": "24.2.1",
|
|
75
79
|
"@types/semver": "7.8.0",
|
|
@@ -78,7 +82,8 @@
|
|
|
78
82
|
"node-pty": "1.1.0",
|
|
79
83
|
"tsx": "4.20.3",
|
|
80
84
|
"typescript": "5.9.2",
|
|
81
|
-
"vitest": "3.2.7"
|
|
85
|
+
"vitest": "3.2.7",
|
|
86
|
+
"yaml": "2.9.1"
|
|
82
87
|
},
|
|
83
88
|
"keywords": [
|
|
84
89
|
"cli",
|