daniel156161
9177e989bd
feat: default port 443 for domain remotes, strip from display (v0.9.4)
...
Testing / test (push) Failing after 13m12s
- Domain-like --remote endpoints default to port 443; :443 is optional
- _normalize_endpoint strips :443 before storage in remotes.json
- _load_remotes normalises keys on load (backward compat migration)
- _remote_display_name omits :443 for domain endpoints
- _resolve_connect_endpoint adds :443 back for TCP connection
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-03 16:46:27 +02:00
daniel156161
c1a5ef9dd7
feat: token-auth removal, security hardening, Stripe-style compat layer (v0.9.2)
...
Testing / test (push) Successful in 41s
Package Extension / package-extension (push) Successful in 35s
Build & Publish Package / publish (push) Successful in 46s
- Remove token auth entirely; only Ed25519 pubkey auth or --no-auth
- Add 32 MB message-size cap in serve and client (DoS protection)
- Set Unix socket to 0o600 after bind in native_host (multi-user hardening)
- Enforce browser-cli/VERSION user-agent on all TCP connections
- Add PROTOCOL_MIN_CLIENT check (>= 0.9.0) server- and client-side
- Include server_version + min_client_version in challenge frame
- Add browser_cli/version_manager.py: parse_version, get_installed_version
- Add browser_cli/compat.py: Stripe-style versioning layer with adapt_request
/ adapt_response hooks; baseline 0.9.2, no shims needed yet
- Fix BrowserCLI key handling: no Path() wrap for agent specs
- Fix _multi_browser_targets() to forward key to remote_browser_targets()
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-02 21:59:46 +02:00
daniel156161
b87f536ecd
chore: bump version to 0.9.1
...
Testing / test (push) Failing after 11m6s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-02 19:56:39 +02:00
daniel156161
4b2abbbfc5
feat: Ed25519 challenge-response auth + YubiKey/SSH agent support (v0.9.0)
...
Testing / test (push) Successful in 26s
Package Extension / package-extension (push) Successful in 22s
Build & Publish Package / publish (push) Successful in 27s
Security:
- serve.py: server now sends nonce challenge before accepting any command;
clients sign nonce + SHA256(canonical_payload) with Ed25519 key
- New --authorized-keys FILE option for serve; token auth still works as fallback
- Connection limit: BoundedSemaphore(64) in serve.py
- Secure file creation with os.open(..., 0o600) for token/key files
- New auth.py module: keygen, file key load/save, SSH agent protocol (pure Python),
sign/verify helpers compatible with both file keys and agent-held keys (YubiKey,
TPM, gpg-agent)
Features:
- YubiKey support via SSH agent protocol — no new runtime deps, just $SSH_AUTH_SOCK
- New `browser-cli auth` command group: keygen, trust, show, keys
- Global --key PATH flag (or BROWSER_CLI_KEY env) selects signing key;
pass "agent" or "agent:<selector>" to use SSH agent key
- BrowserCLI Python API gains key= parameter
Bug fixes (11 issues across two review passes):
- client.py: check response is not None before json.loads
- native_host.py: _read_exact_stream loop handles EINTR short reads; fix Windows
Listener leak on accept error
- __init__.py: open_wait / tabs_watch_url raise RuntimeError instead of silent None
- extension/tabs.ts: dedupe skips tabs without URL; tabsSort uses pendingUrl fallback
- extension/session.ts: removeListener before addListener prevents duplicate handlers
Breaking: TCP serve protocol now sends a challenge frame first (v0.9.0)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-02 16:20:39 +02:00
daniel156161
9f03e29807
chore: bump version to 0.8.7
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-02 15:05:51 +02:00
daniel156161
753e4c4449
update version to 0.8.6 and update requirements
Testing / test (push) Successful in 23s
Package Extension / package-extension (push) Successful in 21s
Build & Publish Package / publish (push) Successful in 22s
2026-05-02 12:44:54 +02:00
daniel156161
edafd349df
use full terminal columns for completion test and add native host app as a single script wraper for native host app import
2026-05-02 01:14:28 +02:00
daniel156161
9435dcc716
target first remote browser when not giving it with a alias and update version to 0.8.4
Testing / test (push) Successful in 34s
Package Extension / package-extension (push) Successful in 1m0s
Build & Publish Package / publish (push) Successful in 37s
2026-05-01 20:14:40 +02:00
daniel156161
bd37c68e80
fix bug that getAliases got not found and update version to 0.8.3
Testing / test (push) Successful in 26s
2026-05-01 20:04:34 +02:00
daniel156161
1b0e090466
update version to 0.8.2
Testing / test (push) Failing after 12m47s
2026-05-01 19:30:29 +02:00
daniel156161
7ee664153b
change background.js into split typescript files for better managemand and build background.js from typescript
2026-05-01 19:28:36 +02:00
daniel156161
fb78fd0471
impplement pageing between native host and browser extension
2026-05-01 19:07:46 +02:00
daniel156161
2f982fa714
fix remote clients command
Testing / test (push) Successful in 25s
Package Extension / package-extension (push) Successful in 9s
Build & Publish Package / publish (push) Successful in 21s
2026-04-30 13:49:32 +02:00
daniel156161
cf0c9555d0
update version to 0.7.1
Testing / test (push) Successful in 28s
Package Extension / package-extension (push) Successful in 13s
Build & Publish Package / publish (push) Successful in 31s
2026-04-17 21:08:18 +02:00
daniel156161
36abde501c
update version to 0.7.0
Testing / test (push) Successful in 23s
Package Extension / package-extension (push) Successful in 21s
Build & Publish Package / publish (push) Successful in 24s
2026-04-17 20:52:47 +02:00
daniel156161
1aff084429
add deterministic extension key
...
Testing / test (push) Waiting to run
Extension ID: bfpmkhngkjnfhabmfckgeohlilokodkg
2026-04-17 20:45:36 +02:00
daniel156161
1c5fd0ffee
feat: add browser automation commands (v0.6.0)
...
Testing / test (push) Successful in 24s
Package Extension / package-extension (push) Successful in 9s
Build & Publish Package / publish (push) Successful in 21s
Navigation: open-wait (open + block until loaded)
DOM: key, hover, check/uncheck, clear, focus, submit, poll, scroll, select, eval, wait-for
Tabs: pin/unpin, screenshot, watch-url (block until URL matches regex)
New command groups: page info, storage get/set, cookies list/get/set
Extension: add cookies permission
2026-04-16 14:21:19 +02:00
daniel156161
edf9056430
show mute status correctly when tab mute and add to get single tab status
Package Extension / package-extension (push) Successful in 17s
Build & Publish Package / publish (push) Successful in 29s
Testing / test (push) Failing after 26s
2026-04-13 21:35:25 +02:00
daniel156161
c494e76fe2
allow to mute and unmute tabs and get mute status into tab info
Testing / test (push) Failing after 34s
2026-04-13 21:19:27 +02:00
daniel156161
5150933319
change that tab open change url inplace and get active tab from window id
Testing / test (push) Successful in 29s
Package Extension / package-extension (push) Successful in 11s
Build & Publish Package / publish (push) Successful in 43s
2026-04-13 19:50:46 +02:00
daniel156161
a1038d5817
fix that alias can only exist once and when dublicate give error
Testing / test (push) Successful in 39s
Package Extension / package-extension (push) Successful in 23s
Build & Publish Package / publish (push) Successful in 33s
2026-04-12 17:31:49 +02:00
daniel156161
64d804cf32
adding better markdown extracting and filter out to not have broken staff, allow that session can list over multiple browsers
2026-04-12 17:10:19 +02:00
daniel156161
57c4ccc48a
move rename-profile to clients rename
2026-04-10 13:38:54 +02:00
daniel156161
362b53a384
remove the --profile flag on windows open and add opening a new window with a url
2026-04-10 13:06:53 +02:00
daniel156161
61b774a7a4
add multi browser mode to arragate data from all browsers by tabs list, tabs count, group list, group count and windows list
...
Package Extension / package-extension (push) Successful in 12s
Build & Publish Package / publish (push) Successful in 22s
remove (unnamed) into the group names just leave it a empty string, remove Focused on windows how should the browser know what windows are focused
2026-04-10 12:49:51 +02:00
daniel156161
6979f2ef30
allow to rename the profile without a browser restart and remove old sockets and registry entry when browser closes
Build & Publish Package / publish (push) Successful in 27s
Package Extension / package-extension (push) Failing after 10m17s
2026-04-10 12:02:14 +02:00
daniel156161
c9ecde9338
remove planform and show extension version into client list
2026-04-10 11:34:36 +02:00
daniel156161
bdf5ad842f
update extension version to v0.5.0
Package Extension / package-extension (push) Successful in 18s
Build & Publish Package / publish (push) Failing after 22s
2026-04-10 03:50:28 +02:00
daniel156161
f2a7f85ee3
adding new extract command to extract selector or main content as markdown, updateing version as 0.5.0
Package Extension / package-extension (push) Successful in 12s
Build & Publish Package / publish (push) Failing after 21s
2026-04-10 03:44:49 +02:00
daniel156161
0ef224bc11
do not fix the cli the same links and image links
2026-04-10 02:49:54 +02:00
daniel156161
44e667bfeb
add extension icons and update the version
2026-04-10 00:03:38 +02:00
daniel156161
c5a4218da0
fix moving of browser groups and allow to store groups into session
2026-04-09 23:38:00 +02:00
daniel156161
7d6674e9e5
fix to open new group when not already exists
2026-04-09 08:48:09 +02:00
daniel156161
ab4ba97886
add moveing of tabs and groups, multi browser support, auto complite into terminal, extract html and adding testing
2026-04-09 01:41:01 +02:00
daniel156161
4880b34792
fix extraction of images to not get true as altags or empty src images
2026-04-08 22:18:21 +02:00
daniel156161
178b7bf7a2
init commit
2026-04-08 21:17:59 +02:00