refactor: move Lobu to file-first config and embedded runtime#170
Merged
Conversation
…sensitive information Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a21dad39d4
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
buremba
added a commit
that referenced
this pull request
May 18, 2026
Picks up: - PR #170 (lobu-ai/owletto): inline pairing + permissions into the chrome extension sidepanel (no more separate pairing.html tab). - PR #172 (lobu-ai/owletto): pin chrome extension ID via manifest key (`amnnhclgmbldmfcfamonoggjhfidemmm`) and hardcode it into the Mac bridge's allowed_origins; env var override now validates against the chrome ID regex.
4 tasks
buremba
added a commit
that referenced
this pull request
May 18, 2026
#889) Picks up owletto-ai/owletto#185 (mac menubar context picker + per-context Keychain + Start/Stop semantics) and adds the CLI/ server hooks the menubar needs. CLI / server changes: - getServerConfig() in packages/cli/src/internal/context.ts now honors LOBU_CONTEXT env in addition to the explicit arg and the config's currentContext. Without this, the Mac menubar's spawn-of-`lobu run` (which passes LOBU_CONTEXT=<context>) couldn't make the server resolve the right context's server block — every run fell back to the operator's CLI default and picked PGlite even when a databaseUrl was configured for the intended context. - LobuServerConfig + UserServerConfig gain a `lifecycle?: "managed" | "external"` field. The Mac menubar uses this to decide whether to own the runner's process (Start/Stop verbs) or just connect (Sign in/Sign out). Today only the menubar reads it; the CLI's `lobu run` ignores it. Submodule: - packages/owletto bumped from fb84cf15 (#174 merge) → 970eb500. Inbetween: #170 chrome-ext inline pairing, #172 manifest key, #173 sidepanel iframe fix, plus #185.
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.
Summary
This PR now contains the full pending branch change set, not just the original embedded Owletto fix. The main thrust is moving Lobu toward a file-first configuration and embedded runtime model, while also landing the related gateway, worker, docs, and product-surface updates that were present in the local checkout.
Included changes
Gateway and runtime architecture
lobu.tomlloading inpackages/gateway/src/config/file-loader.tsLobufacade inpackages/gateway/src/lobu.tspackages/gateway/src/services/core-services.tsand public config routes to work with file-loaded and runtime-provisioned agent settingsRoute, auth, and API reshaping
Embedded worker and Owletto execution
.bindirectories are availablepackages/worker/src/embedded/just-bash-bootstrap.tsowlettopackages/gateway/src/config/index.tspackages/gateway/src/__tests__/config-memory-plugins.test.tspackages/gateway/src/__tests__/embedded-deployment.test.tspackages/worker/src/__tests__/embedded-just-bash-bootstrap.test.tsCLI and project flow
packages/cli/src/commands/dev.ts,packages/cli/src/commands/init.ts, and related config codeDocs, examples, env, and landing
.env.example,README.md, Docker compose files, Helm values/templates, andconfig/system-skills.jsonlanding/app tree in favor of the currentpackages/landingdirectionWhy
This branch combines two streams of work that were present in the checkout:
As a result, the PR is broader than the original branch name suggests and should be reviewed as an architecture/runtime/content update rather than a narrow one-file fix.
Validation
Validation from an isolated clean worktree at the branch tip:
make build-packages: passedbun test packages/gateway/src/__tests__/config-memory-plugins.test.ts packages/gateway/src/__tests__/embedded-deployment.test.ts packages/worker/src/__tests__/embedded-just-bash-bootstrap.test.ts: passedRuntime note:
owletto 1.4.0