Skip to content

chore: bump owletto submodule (#149 → #154)#825

Merged
buremba merged 1 commit into
mainfrom
chore/bump-owletto-submodule
May 17, 2026
Merged

chore: bump owletto submodule (#149 → #154)#825
buremba merged 1 commit into
mainfrom
chore/bump-owletto-submodule

Conversation

@buremba
Copy link
Copy Markdown
Member

@buremba buremba commented May 17, 2026

Bump packages/owletto submodule pointer from 8ede17c (#149) to 9e89d33 (#154).

Brings in four merged owletto PRs:

# Title
#150 PATH-based agent detection (replaces MCP session inference)
#152 Auto-pick a default agent when defaultAgent is unset
#155 Distinct SF Symbol icons per CLI agent kind
#154 WATCHERS section in menubar with last-fired + manual trigger

#154 depends on server endpoints introduced in #824 (merged). All four owletto PRs are on owletto/main and the new submodule SHA is reachable.

Test plan

  • Submodule URL still resolves
  • New SHA reachable on owletto/main
  • CI smoke (mac-build, drift-check) green

Summary by CodeRabbit

  • Chores
    • Updated the owletto subproject dependency to a newer version.

Review Change Stack

Includes:
- #150 PATH-based agent detection (replaces MCP session inference)
- #152 auto-pick default agent when defaultAgent is unset
- #155 distinct SF Symbol icons per CLI agent kind
- #154 WATCHERS section in menubar with last-fired + manual trigger
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 17, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: bbab369c-1814-4680-a52f-68e46cfb1378

📥 Commits

Reviewing files that changed from the base of the PR and between 53e9ddd and 172241d.

📒 Files selected for processing (1)
  • packages/owletto

📝 Walkthrough

Walkthrough

The packages/owletto subproject reference is updated from commit 8ede17cbb75f7c5d542eb009041547eaa833fc17 to commit 9e89d33ef60a3b6c39050e26475252301d4522fe. This is a submodule pin update with no other source changes.

Changes

Subproject Dependency Update

Layer / File(s) Summary
Owletto subproject commit update
packages/owletto
Subproject reference is pinned to a new commit SHA.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

Poem

🐰 A whisker-twitch update, so light and so swift,
The submodule dances to its newest gift,
One commit replaced with another so fine,
The owletto version now beautifully aligned! ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change—bumping the owletto submodule from one commit to another with PR references.
Description check ✅ Passed The description includes a comprehensive summary, rationale, linked PRs, and test plan completion status. The main required sections are covered.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/bump-owletto-submodule

Comment @coderabbitai help to get the list of available commands and usage tips.

@codecov-commenter
Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@buremba buremba merged commit 3e82989 into main May 17, 2026
22 of 23 checks passed
@buremba buremba deleted the chore/bump-owletto-submodule branch May 17, 2026 19:57
buremba added a commit that referenced this pull request May 17, 2026
Pulls in #823 (revert goals primitive), #824 (auto-provision default agent
+ manual trigger), #825 (owletto submodule bump to #154). Submodule
merged origin/main into our feat/chrome-debugger-executor branch
separately; bumps the parent's submodule pointer to the merge SHA so
both the executor work and main's recent owletto changes (Mac app
LobuClient + connection-settings UI rework + drop default-form-layout)
ship together.
buremba added a commit that referenced this pull request May 17, 2026
…ayout

Adds three Chrome-extension connectors (browser.evaluate, browser.fill_form,
browser.page_text) whose executors live in the Owletto for Chrome extension.
Definitions sit under `packages/connectors/src/browser/` so primitive
groupings are structurally distinct from third-party service connectors.

- packages/connectors/src/browser/{evaluate,fill_form,page_text}.ts (new)
- packages/connectors/src/index.ts: re-export browser/*
- packages/connector-worker/src/compile-connector.ts: resolve dotted keys
  via subdir (`browser/evaluate.ts`) in addition to the existing
  underscore-flat convention (`chrome_tabs.ts`).
- packages/server/src/utils/connector-catalog.ts: scan one level deep so
  browser/* is discovered; preserve relative `source_path` so resolvers
  don't collide on basename.

Submodule (packages/owletto) is left at main's pin (aeb3324) — the
browser.evaluate executor already shipped via #825/#159, so no bump is
needed by this PR.
buremba added a commit that referenced this pull request May 18, 2026
…#828)

* feat(connectors): browser.evaluate / fill_form / page_text + subdir layout

Adds three Chrome-extension connectors (browser.evaluate, browser.fill_form,
browser.page_text) whose executors live in the Owletto for Chrome extension.
Definitions sit under `packages/connectors/src/browser/` so primitive
groupings are structurally distinct from third-party service connectors.

- packages/connectors/src/browser/{evaluate,fill_form,page_text}.ts (new)
- packages/connectors/src/index.ts: re-export browser/*
- packages/connector-worker/src/compile-connector.ts: resolve dotted keys
  via subdir (`browser/evaluate.ts`) in addition to the existing
  underscore-flat convention (`chrome_tabs.ts`).
- packages/server/src/utils/connector-catalog.ts: scan one level deep so
  browser/* is discovered; preserve relative `source_path` so resolvers
  don't collide on basename.

Submodule (packages/owletto) is left at main's pin (aeb3324) — the
browser.evaluate executor already shipped via #825/#159, so no bump is
needed by this PR.

* chore(format): biome format pre-existing diff.test.ts drift

Pre-existing format drift introduced in #829 was failing main's
format-lint CI for several commits. Bundling the auto-fix here so PR
#828's format-lint check turns green on top of an already-red main.

* fix(connectors): subdir-aware resolvers + userManaged on browser primitives

Pi review found four follow-ups to the browser/* subdir layout introduced
in the previous commit:

- packages/server/src/utils/connector-catalog.ts: server-side
  findBundledConnectorFile() was still flat-only — auto-install /
  device-reconcile / worker-poll would treat browser.evaluate as "no
  bundled source." Now mirrors the worker-side resolver (subdir first,
  underscore-flat fallback). Adds bundledConnectorSourcePath(filePath)
  so subdir paths round-trip through connectorSourcePathToUri.
- packages/server/src/utils/ensure-connector-installed.ts +
  packages/server/src/worker-api/device-reconcile.ts: stop persisting
  basename(filePath) as source_path — collides on basename across
  subdirs and breaks source_uri resolution for subdir connectors.
- packages/cli/src/commands/_lib/connector-loader.ts: CLI resolver was
  also flat-only.
- packages/connectors/src/browser/{evaluate,fill_form,page_text}.ts:
  mark feeds userManaged so device-reconcile doesn't auto-wire them
  with config=NULL. These are bridge-composing primitives (script /
  url + fields / url are required, gateway-author-supplied), not
  end-user feeds.

* fix(mcp,device-reconcile,owletto): inherited main failures + pi follow-up

- packages/server/src/workspace/multi-tenant.ts: when a Bearer header is
  present but PAT verify, OAuth verify, AND session-cookie lookup all
  fail, return RFC 6750 `invalid_token` 401 (with WWW-Authenticate
  error=invalid_token) instead of falling through to anonymous and
  returning generic `unauthorized` later. Fixes mcp/auth.test.ts
  "should reject expired/invalid OAuth access token" — they assert the
  standards-compliant error code so MCP clients (Claude Desktop etc.)
  surface "bad token" rather than mistaking it for "no auth needed."
- packages/server/src/worker-api/device-reconcile.ts: short-circuit
  ensureDeviceConnectorWired() when declaredFeedKeys is empty (every
  feed userManaged → nothing to auto-wire). Avoids a compile + upsert +
  no-auth-connection adopt per Chrome poll for browser.* primitives.
  Definition + version row still get installed lazily by
  ensureConnectorInstalled when a composing connector runs them.
  (Second-round pi review finding.)
- packages/owletto: bump pointer to 2552ed0 — fix(build): vite
  target=esnext for top-level await in main.tsx (lobu-ai/owletto#161,
  merged). Unblocks PR Validation / build-test which had been failing
  on packages/owletto's vite build since the auth-pivot landed.

* fix(server): repair sibling-walk SPA template/dist paths post-rename

The packages/web → packages/owletto rename in #817 updated
APP_ROOT-relative candidates but missed two:

- The `../web/{dist,index.html}` sibling-deploy candidate was kept
  verbatim ("for out-of-monorepo deployments"), but after the rename
  the sibling dir is `../owletto/`, not `../web/`. The stale path
  silently misses on every lookup.
- The `path.resolve(process.cwd(), '../packages/owletto/...')`
  candidate has always resolved to `packages/packages/owletto/...`
  (double `packages`) when cwd is `packages/server` — i.e. exactly
  the layout the integration job runs under. Rewriting as
  `../owletto/...` lands in the right sibling.

Symptoms: every `public-pages-contract.test.ts` (and
`mcp/auth.test.ts` indirectly) failure on `main` since 7a72456 —
`buildPublicPageModel` returned a real model but
`loadAnySpaHtmlTemplate()` returned null, so the catch-all fell
through to the JSON discovery response with `Cache-Control: no-store`.
Reproduces against PGlite locally; fixed and verified all 3
public-pages tests pass.

Same broken pattern repaired in `utils/public-origin.ts:hasLocalFrontend`
(8 candidates, 4 corrected).

* fix(device-reconcile,catalog): pi review pass-3 follow-ups

Third pi review flagged two issues with the prior round:

- worker-api/device-reconcile.ts: the earlier early-return-when-empty
  short-circuited too aggressively. `local.directory` and other
  device connectors whose only feed is `userManaged` rely on
  ensureDeviceConnectorWired to install the connector_definition +
  version + connection — `/api/workers/me/feeds` 404s on
  "no connection wired" otherwise. Move the short-circuit into the
  fast-path check instead: when the connection + version already
  exist AND there's nothing to verify (declaredFeedKeys empty),
  fast-path returns without compiling. First poll still does the
  full install; subsequent polls are zero work.
- utils/connector-catalog.ts: the one-level subdir scan was
  descending into `connectors/src/__tests__/` and trying to extract
  catalog metadata from test files that import `bun:test`,
  producing esbuild warnings on every cold scan. Skip `__tests__`
  and any leading-underscore dir.
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.

2 participants