feat(web): add authenticated localhost client - #386
Open
VishnuM049 wants to merge 32 commits into
Open
Conversation
Signed-off-by: VishnuM449 <vishnu.muthiah04@gmail.com>
Signed-off-by: VishnuM449 <vishnu.muthiah04@gmail.com>
Signed-off-by: VishnuM449 <vishnu.muthiah04@gmail.com>
Signed-off-by: VishnuM449 <vishnu.muthiah04@gmail.com>
Signed-off-by: VishnuM449 <vishnu.muthiah04@gmail.com>
Signed-off-by: VishnuM449 <vishnu.muthiah04@gmail.com>
Signed-off-by: VishnuM449 <vishnu.muthiah04@gmail.com>
Signed-off-by: VishnuM449 <vishnu.muthiah04@gmail.com>
Signed-off-by: VishnuM449 <vishnu.muthiah04@gmail.com>
Signed-off-by: VishnuM449 <vishnu.muthiah04@gmail.com>
Signed-off-by: VishnuM449 <vishnu.muthiah04@gmail.com>
Signed-off-by: VishnuM449 <vishnu.muthiah04@gmail.com>
Signed-off-by: VishnuM449 <vishnu.muthiah04@gmail.com>
Signed-off-by: VishnuM049 <vishnu.muthiah04@gmail.com>
Signed-off-by: VishnuM049 <vishnu.muthiah04@gmail.com>
Signed-off-by: VishnuM049 <vishnu.muthiah04@gmail.com>
Signed-off-by: VishnuM049 <vishnu.muthiah04@gmail.com>
Signed-off-by: VishnuM049 <vishnu.muthiah04@gmail.com>
Signed-off-by: VishnuM049 <vishnu.muthiah04@gmail.com>
Signed-off-by: VishnuM049 <vishnu.muthiah04@gmail.com>
Signed-off-by: VishnuM049 <vishnu.muthiah04@gmail.com>
Signed-off-by: VishnuM049 <vishnu.muthiah04@gmail.com>
Signed-off-by: VishnuM049 <vishnu.muthiah04@gmail.com>
Signed-off-by: VishnuM049 <vishnu.muthiah04@gmail.com>
Signed-off-by: VishnuM049 <vishnu.muthiah04@gmail.com>
Signed-off-by: VishnuM049 <vishnu.muthiah04@gmail.com>
Signed-off-by: Hari Srinivasan <harisrini21@gmail.com>
Signed-off-by: Hari Srinivasan <harisrini21@gmail.com>
Haz3-jolt
force-pushed
the
feat/web-client
branch
from
September 9, 2026 09:04
ec72b0a to
153870e
Compare
Dependency ReviewThe following issues were found:
License Issuespackages/cli/package.json
packages/tui/package.json
packages/web/package.json
OpenSSF ScorecardScorecard details
Scanned Files
|
Signed-off-by: Hari Srinivasan <harisrini21@gmail.com>
Haz3-jolt
force-pushed
the
feat/web-client
branch
2 times, most recently
from
September 9, 2026 10:06
c813be4 to
f63ec95
Compare
Signed-off-by: Hari Srinivasan <harisrini21@gmail.com>
Haz3-jolt
force-pushed
the
feat/web-client
branch
from
September 9, 2026 10:08
f63ec95 to
3e85933
Compare
Signed-off-by: Hari Srinivasan <harisrini21@gmail.com>
Signed-off-by: Hari Srinivasan <harisrini21@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Purpose
Add an authenticated localhost web client for daemon-owned sessions, conversation state, workspace review, configuration, and session management while preserving the public SDK and security boundaries.
The rebased branch now builds against current
main. It also supports opening the current TUI session in a browser and keeps simultaneous web and TUI projections synchronized during session selection, cancellation, failure, detach, and reconnect.Fixes
Fixes #99, #100, #101, #108, #109, #110, #111, #112, and #117.
Addresses #98, #113, #114, #115, #116, #118, #119, #120, #121, #122, #126, and #127. These broader issues retain acceptance criteria outside this branch.
Approach
mainand retain the intentional removal of the obsolete changelog.axl web <session-id>and TUI/webcurrent-session handoff through the trusted CLI host. Repeated launches reuse the gateway with fresh one-use tokens and do not create another agent loop.The rebased branch uses wire protocol version 14. Older clients fail the existing compatibility handshake instead of receiving partial behavior.
Workspace selection
Recent-session filters
How was this tested?
Build-repair commit, verified in an isolated worktree:
pnpm build: passed.pnpm typecheck: passed.pnpm lint: passed.pnpm format:check: passed.pnpm check:boundaries: passed.pnpm check:generated: passed.git diff --check: passed.node --test --test-timeout=120000 scripts/installed-web.test.ts: passed against a packed CLI outside the repository.Browser launch and
/webhandoff commit, verified in an isolated worktree:pnpm --filter @axl/web test: 64 passed, 2 real-browser cases skipped.Transcript synchronization commit:
node --test --test-timeout=30000 packages/web/test/application-shell.test.ts: 19 passed.pnpm --filter @axl/web test: 66 passed, 2 real-browser cases skipped.Chrome/Chromium was unavailable, so rendered-browser tests were not run in the final validation.
reusewas unavailable. The complete repository suite and real-provider calls were not run.Learning
Pending session selection and committed subscription ownership are different lifetimes. Candidate generations cancel stale candidates; committed callback identity keeps the current projection live until a replacement commits.
Path convenience does not need browser filesystem access. Bounded daemon-side resolution supports useful shorthand while preserving canonical paths and failing closed on ambiguity.
Checklist
REUSE.toml.Signed-off-bytrailer.Licenses
AI assistance