Skip to content

docs(readme): fix build instructions#15

Merged
fathyb merged 7 commits into
mainfrom
fix-build-instructions
Jan 29, 2023
Merged

docs(readme): fix build instructions#15
fathyb merged 7 commits into
mainfrom
fix-build-instructions

Conversation

@fathyb

@fathyb fathyb commented Jan 29, 2023

Copy link
Copy Markdown
Owner

Fixes #4

@fathyb fathyb marked this pull request as ready for review January 29, 2023 02:51
@fathyb fathyb merged commit cd84b0d into main Jan 29, 2023
@fathyb fathyb deleted the fix-build-instructions branch January 29, 2023 02:51
the-homeless-god pushed a commit to the-homeless-god/wb that referenced this pull request Dec 5, 2023
JeffCarpenter pushed a commit to JeffCarpenter/carbonyl that referenced this pull request Nov 9, 2025
Handle leftover git am state in patches script
jmagly added a commit to jmagly/carbonyl that referenced this pull request Apr 3, 2026
…nnect

Add automation/daemon.py implementing the persistent browser daemon MVP.
A Carbonyl browser starts once as a forked background process and stays
running, exposing a Unix domain socket at $CARBONYL_SESSION_DIR/<name>.sock.

Callers reconnect to the live process via CarbonylBrowser(session=name).open()
which detects the daemon socket and connects instead of spawning a new browser.
Auth cookies, localStorage, and in-page state are preserved between connections
because the Chromium process never restarts.

Key API:
  start_daemon(session, url) → forks daemon, waits for socket ready
  stop_daemon(session)       → graceful close command
  is_daemon_live(session)    → socket probe
  DaemonClient               → thin socket proxy (send/click/drain/page_text/…)

CarbonylBrowser changes:
  .open()       → auto-detects live daemon and reconnects
  .disconnect() → releases socket without stopping browser
  .close()      → sends close command when in daemon mode

CLI:
  python automation/daemon.py start <session> [url]
  python automation/daemon.py stop  <session>
  python automation/daemon.py status
  python automation/daemon.py attach <session>  # interactive REPL

Also fix DaemonClient._rpc() to extend socket timeout for drain commands
(drain seconds + 10s) to prevent premature timeout on long waits.

Closes fathyb#15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Incomplete build instructions

1 participant