Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 12 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,20 @@ like responses, while a real terminal remains underneath for interactive work.
## Alpha status

**[Phase 5: Alpha polish](docs/STATUS.md) is in progress.** Its feature slices
and owner-device acceptance through alpha.6 are complete. Alpha.5 installed in
and owner-device acceptance through alpha.7 are complete. Alpha.5 installed in
place but is rejected because a release-shrinker failure prevents SSH
connection. Alpha.6 corrects that failure and has passed independent CI,
permanent signing, in-place update, and physical acceptance. The remaining
product boundary is invited technical-alpha use sufficient to evaluate whether
ten real users can complete small remote tasks for two weeks and provide useful
feedback.

The current accepted signed build is `0.1.0-alpha.6`; `0.1.0-alpha.5` is an
immutable rejected artifact. The current source candidate is
`0.1.0-alpha.7`. It allows drafting the next command while one runs and lets a
user visit Home without disconnecting the one active SSH session. Signed builds
are shared directly with invited testers.
permanent signing, in-place update, and physical acceptance. Alpha.7 adds local
drafting while a command runs and retained-session Home navigation. The
remaining product boundary is invited technical-alpha use sufficient to
evaluate whether ten real users can complete small remote tasks for two weeks
and provide useful feedback.

The current accepted signed build and source version are both
`0.1.0-alpha.7`. Alpha.5 is an immutable rejected artifact. Alpha.7 allows drafting the
next command while one runs and lets a user visit Home without disconnecting
the one active SSH session. Both paths pass on the owner's Galaxy S25 Ultra.
Signed builds are shared directly with invited testers.
There is no public signed APK or GitHub prerelease while Phase 5 is open.
Testers should obtain the APK and its checksum from the owner through the agreed
private channel, then follow the
Expand Down
23 changes: 17 additions & 6 deletions docs/BACKLOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,8 +92,8 @@ Portrait remains the primary phone layout.

## Drafting and queued commands while a turn runs

**Status:** Local drafting implemented in the alpha.7 source; command queue
deferred.
**Status:** Local drafting implemented and physically accepted in alpha.7;
command queue deferred.

Physical testing showed that interrupt and recovery are fast, but disabling the
composer during a running turn made the user wait before typing the likely
Expand All @@ -102,6 +102,10 @@ runs, preserves the local draft through stopping, failure, raw-mode switching,
rotation, and saved-state restoration, and enables Send only when the shell is
ready again.

On the signed alpha.7 candidate, a `pwd` draft remained editable while
`sleep 10` ran, Send stayed disabled until the shell returned to ready, and the
draft then executed normally.

The implemented draft behavior remains separate from an explicit command queue.
That queue remains a larger feature and must define ordering,
visibility, reordering or removal, behavior after failure or interruption,
Expand Down Expand Up @@ -139,13 +143,15 @@ and the rule that history must not accidentally become credential storage.

## Home navigation and session dashboard

**Status:** One retained active session implemented in the alpha.7 source;
multiple concurrent sessions deferred.
**Status:** One retained active session implemented and physically accepted in
alpha.7; multiple concurrent sessions deferred.

Threadline now allows navigation Home while retaining the one active
foreground-service-backed session. Home identifies the active session, offers
explicit Return and Disconnect actions, and prevents a second connection while
the first remains active. Leaving the session screen does not disconnect it.
The signed alpha.7 candidate passed this Home and Return path on the Galaxy S25
Ultra.

The remaining scope is separate:

Expand Down Expand Up @@ -235,15 +241,20 @@ content, host data, or terminal output merely to claim that metrics exist.

## Automated release-path and device acceptance

**Status:** Deferred test-infrastructure design; alpha.6 physical acceptance is
complete.
**Status:** Deferred test-infrastructure design; manual physical acceptance
through alpha.7 is complete.

The core debug Android suite and static release-shrinker checks run in public CI,
but alpha.5 showed the remaining gap: assembling a minified APK is not the same
as connecting through its production runtime. Alpha.6 used an isolated in-app
minified probe plus a manual signed update on the physical device to close that
specific regression.

Alpha.7 continued to use the public merged-main gate and local signing path,
then completed manual drafting and retained-session Home acceptance on the
physical device. Automating those signed release paths remains future test
infrastructure work.

A later automation slice should define how to cover a packaged minified app
through fixture connection, password and imported-key authentication,
structured commands, raw-terminal input, same-session switching, and retained
Expand Down
5 changes: 5 additions & 0 deletions docs/HISTORY.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,11 @@ The alpha.7 source then made the composer available for local drafting while a
command runs and added Home navigation that retains one active SSH session with
explicit Return and Disconnect actions. Multiple concurrent sessions remain
out of scope.
The merged-main alpha.7 candidate then passed CI, signing, and installation on
the Galaxy S25 Ultra. The retained-session Home and Return path passed. During a
running `sleep 10`, the composer accepted a `pwd` draft while Send remained
disabled; Send enabled when the shell returned to ready and the draft executed
normally. This made alpha.7 the accepted tester build.
Additional device and OEM coverage is opportunistic alpha evidence rather than a separate Pixel
gate. See
[STATUS.md](STATUS.md) rather than this chronology for the active boundary.
14 changes: 11 additions & 3 deletions docs/STATUS.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,8 @@ authentication, PTY creation, and shell startup. Alpha.5 is rejected and alpha.4
remains the latest accepted signed artifact. See the
[alpha.5 signing and release-shrinker investigation](investigations/2026-08-10-alpha5-signing-update-progress.md).

The accepted tester build is `0.1.0-alpha.6` (`10006`). It preserves the
Alpha.6 became the accepted tester build after correcting the release-only
failure. It preserves the
three cbssh Ed25519 JCA classes whose binary names are part of the provider
contract, and the renamed release verifier now requires those exact names in
both the R8 mapping and assembled DEX alongside the existing termlib JNI field
Expand All @@ -104,8 +105,9 @@ terminal correctly remained terminal-only rather than creating transcript
cards. See the
[alpha.6 Ed25519 shrinker correction](investigations/2026-08-10-alpha6-ed25519-shrinker-correction.md).

Product work continues while invited alpha use is gathered. The current source
candidate is `0.1.0-alpha.7` (`10007`). Its first slice keeps the structured
Product work continues while invited alpha use is gathered. The current
accepted tester build and source version are both `0.1.0-alpha.7` (`10007`). Its
first slice keeps the structured
composer editable while a command runs, preserves that local draft through
same-session terminal switching and Android saved-state restoration, and keeps
Send disabled until the shell returns to ready. It does not queue or
Expand All @@ -115,6 +117,12 @@ Disconnect actions, and prevents starting a second connection. Connected-screen
draft and mode state survive the round trip and are cleared when the session
actually ends.

The merged-main alpha.7 candidate passed CI, was signed and installed on the
Galaxy S25 Ultra, and passed the retained-session Home and Return path. While a
`sleep 10` command ran, the composer accepted a `pwd` draft and kept Send
disabled. Send enabled when the shell returned to ready, and the draft then ran
normally. This completes alpha.7 owner-device acceptance.

## Remaining Phase 5 boundaries

- Technical-alpha use sufficient to evaluate the Phase 5 exit criterion.
Expand Down
9 changes: 8 additions & 1 deletion docs/development/release-signing.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,14 @@ is 16 KiB page aligned. Its exact successful merged-`main` candidate was signed
through `scripts/sign-latest-alpha.sh`. Android accepted it as an in-place
update over alpha.5, retained local state, and passed the physical password,
retained imported-key, Diagnostics, structured-command, and same-session
raw-terminal acceptance path. Alpha.6 is the current accepted tester build.
raw-terminal acceptance path. Alpha.6 was the accepted tester build at that
milestone.

Alpha.6 was superseded by alpha.7 after the same merged-main selection and
local signing path produced an installed build whose drafting and
retained-session Home slices passed on the physical device. See
[`STATUS.md`](../STATUS.md) for the current accepted build; preserve the exact
alpha.6 facts above as release-history evidence.

## Signing-key boundary

Expand Down