Skip to content

chore: rename packages#499

Merged
buremba merged 3 commits into
mainfrom
chore/package-renames
May 3, 2026
Merged

chore: rename packages#499
buremba merged 3 commits into
mainfrom
chore/package-renames

Conversation

@buremba
Copy link
Copy Markdown
Member

@buremba buremba commented May 1, 2026

Summary

  • rename internal package directories: workeragent-worker, owletto-backendserver, owletto-extensionbrowser-extension, and the web submodule path to packages/web
  • rename published package sources to @lobu/connector-sdk, @lobu/connectors, @lobu/connector-worker, @lobu/embeddings, and @lobu/openclaw-plugin
  • add deprecated compatibility redirect packages for the old @lobu/owletto-* npm names and update publish/release scripts to publish + deprecate them
  • update Dockerfiles, CI, docs, scripts, TS paths, lockfile, and package manifests for the new names

NPM / release notes

  • scripts/publish-packages.mjs now publishes the new package names plus the old redirect packages.
  • Workspace refs are rewritten to each target package's actual workspace version before npm publish.
  • Old package names are deprecated after publish with a message pointing to the new package.
  • release-please-config.json and scripts/bump-version.mjs include the newly published packages and redirect packages.

Web submodule

Validation

  • make build-packages
  • make clean-workers
  • bun run typecheck
  • bun run typecheck:owletto
  • cd packages/web && bun run build
  • cd packages/browser-extension && bun run typecheck
  • git diff --check
  • git -C packages/web diff --check
  • npm pack --dry-run --json for all published packages and old redirect packages
  • Docker builder checks:
    • docker build -f docker/app/Dockerfile --target builder --build-arg SKIP_WEB_BUILD=false -t lobu-app-rename-check .
    • docker build -f docker/worker/Dockerfile --target builder -t lobu-worker-rename-check .
    • docker build -f docker/embeddings-service/Dockerfile --target builder -t lobu-embeddings-rename-check .

@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@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

❌ Patch coverage is 0% with 3 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
packages/cli/src/commands/dev.ts 0.00% 3 Missing ⚠️

📢 Thoughts on this report? Let us know!

buremba added 2 commits May 4, 2026 00:28
…install fix

Pulls in lobu-ai/owletto#61, which updates the OpenClaw install
target string to match the renamed @lobu/openclaw-plugin package.
Required for packages/server/src/utils/__tests__/mcp-install-targets.test.ts.
@buremba buremba force-pushed the chore/package-renames branch from 8d96f03 to efa979b Compare May 3, 2026 23:29
Previously deprecateRenamedPackages only marked the just-published
version as deprecated; anyone pinned to an older version (e.g.
@lobu/owletto-sdk@1.5.0) never saw the rename notice.

Switch to 'npm deprecate <pkg>@*' so the deprecation message lands on
every existing version. Also drop the dir argument since we no longer
need to derive a specific version, and replace isVersionPublished with
a simpler isPackagePublished existence check.
@buremba buremba added the skip-size-check Bypass PR size gate for intentionally large single-concern changes label May 3, 2026
@github-actions github-actions Bot added the triage:needs-human Triage agent escalated for human review label May 3, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 3, 2026

Triage decision: needs-human

Reasons:

  • Modified infra paths that define triage policy itself: .claude/commands/triage-pr.md, .github/triage-config.yml, .github/workflows/
  • PR modifying policy files must not be evaluated by the potentially-modified policy on its own branch
  • Large package rename affecting multiple infrastructure components

Next: Assigned to @buremba for manual review due to policy file modifications

@buremba buremba merged commit c384c34 into main May 3, 2026
19 of 21 checks passed
@buremba buremba deleted the chore/package-renames branch May 3, 2026 23:42
buremba added a commit that referenced this pull request May 4, 2026
PR #499 renamed npm packages to @lobu/connector-worker / @lobu/embeddings,
which is intentional. As a side-effect it also renamed the docker image
push targets to ghcr.io/lobu-ai/connector-worker and lobu-ai/embeddings
— but neither the chart helpers (which compute names as
ghcr.io/lobu-ai/owletto-{worker,embeddings} from image.repository) nor
Flux's image-automation policies/repositories were updated.

Result: every Helm upgrade since #499 has been failing with
ImagePullBackOff on worker + embeddings, then timing out and rolling
back. Currently observed in summaries-prod with two app pods sharing
one RWO PVC because the rollback can't fully complete.

Surgical revert: keep the npm package renames (those publish to npm
and that's their job), restore the docker image names to the form
the chart and Flux expect.
buremba added a commit that referenced this pull request May 4, 2026
…efactor

Squash-rebase of PR #506 onto current main (post #499 package rename
owletto-backend → server). Combines the original 7-commit history into
one because the rename touched every file in the diff.

What changed:
- ChatInstanceManager reads/writes agent_connections directly via
  AgentConnectionStore. Drops the parallel chat_connections table +
  ChatConnectionStore shim. One source of truth.
- Connection secrets live as secret:// refs inside the row's config
  JSON, resolved at runtime through SecretStoreRegistry. Same model as
  every other secret category — pluggable to AWS Secrets Manager / Vault
  / k8s without per-platform code paths.
  - normalizeConfigForStorage moves plaintext secrets into the registry
    via secretStore.put('connections/<id>/<field>') before save.
    Idempotent (already-ref values pass through).
  - resolveConfigForRuntime materializes refs back to values inside
    startInstance, throws on unresolvable refs.
  - removeConnection cascades deleteSecretsByPrefix in safe order
    (history → secrets → row); addConnection rollback uses the same
    order.
  - updateConnection's needsRestart resolves previous refs before
    comparing against caller plaintext, so idempotent lobu-apply re-runs
    don't trip spurious restarts.
- Migration: copies any chat_connections rows into agent_connections
  (filtering NULL template_agent_id orphans) before DROP. Embedded
  PGlite path mirrors the same copy+drop wrapped in a pg_tables
  existence check so fresh installs skip cleanly.
- agent-routes.ts: no-manager fallback writes return 503 instead of
  persisting plaintext directly into agent_connections.config.
- postgres-stores.ts: stops encrypting writes; persists config JSON
  as-is. decryptLegacyEncryptedConfig fallback keeps any pre-existing
  enc:v1: rows decryptable for graceful transition.
- platform.ts: getConnectionStore() added to CoreServices interface.
- Bundled small fixes: Telegram non-fatal setWebhook, http-proxy early
  error handlers, embedded-deployment env hygiene, core-services
  LOBU_PROVIDER_REGISTRY_PATH respect, agent_channel_bindings startup
  no longer deletes connections on secret resolution failure.
- Drive-by typecheck fixes for pre-existing root-tsc errors in
  agent-worker that blocked the pre-commit hook (unrelated to this
  PR's scope, but required to land cleanly):
  - just-bash-bootstrap.ts: cast envRecord to NodeJS.ProcessEnv for
    execFile's env option (Vite ImportMetaEnv augments ProcessEnv with
    BASE_URL/MODE/DEV/PROD/SSR fields stripEnv's return type doesn't
    include).
  - openclaw/tools.ts: same cast on the spawnHook env return.

Verified:
- Per-package bun run typecheck exit 0.
- Root bunx tsc --noEmit exit 0.
- bun test src/gateway/__tests__/ src/lobu — 559 pass / 0 fail.
buremba added a commit that referenced this pull request May 4, 2026
…efactor

Squash-rebase of PR #506 onto current main (post #499 package rename
owletto-backend → server). Combines the original 7-commit history into
one because the rename touched every file in the diff.

What changed:
- ChatInstanceManager reads/writes agent_connections directly via
  AgentConnectionStore. Drops the parallel chat_connections table +
  ChatConnectionStore shim. One source of truth.
- Connection secrets live as secret:// refs inside the row's config
  JSON, resolved at runtime through SecretStoreRegistry. Same model as
  every other secret category — pluggable to AWS Secrets Manager / Vault
  / k8s without per-platform code paths.
  - normalizeConfigForStorage moves plaintext secrets into the registry
    via secretStore.put('connections/<id>/<field>') before save.
    Idempotent (already-ref values pass through).
  - resolveConfigForRuntime materializes refs back to values inside
    startInstance, throws on unresolvable refs.
  - removeConnection cascades deleteSecretsByPrefix in safe order
    (history → secrets → row); addConnection rollback uses the same
    order.
  - updateConnection's needsRestart resolves previous refs before
    comparing against caller plaintext, so idempotent lobu-apply re-runs
    don't trip spurious restarts.
- Migration: copies any chat_connections rows into agent_connections
  (filtering NULL template_agent_id orphans) before DROP. Embedded
  PGlite path mirrors the same copy+drop wrapped in a pg_tables
  existence check so fresh installs skip cleanly.
- agent-routes.ts: no-manager fallback writes return 503 instead of
  persisting plaintext directly into agent_connections.config.
- postgres-stores.ts: stops encrypting writes; persists config JSON
  as-is. decryptLegacyEncryptedConfig fallback keeps any pre-existing
  enc:v1: rows decryptable for graceful transition.
- platform.ts: getConnectionStore() added to CoreServices interface.
- Bundled small fixes: Telegram non-fatal setWebhook, http-proxy early
  error handlers, embedded-deployment env hygiene, core-services
  LOBU_PROVIDER_REGISTRY_PATH respect, agent_channel_bindings startup
  no longer deletes connections on secret resolution failure.
- Drive-by typecheck fixes for pre-existing root-tsc errors in
  agent-worker that blocked the pre-commit hook (unrelated to this
  PR's scope, but required to land cleanly):
  - just-bash-bootstrap.ts: cast envRecord to NodeJS.ProcessEnv for
    execFile's env option (Vite ImportMetaEnv augments ProcessEnv with
    BASE_URL/MODE/DEV/PROD/SSR fields stripEnv's return type doesn't
    include).
  - openclaw/tools.ts: same cast on the spawnHook env return.

Verified:
- Per-package bun run typecheck exit 0.
- Root bunx tsc --noEmit exit 0.
- bun test src/gateway/__tests__/ src/lobu — 559 pass / 0 fail.
buremba added a commit that referenced this pull request May 4, 2026
…efactor (#506)

Squash-rebase of PR #506 onto current main (post #499 package rename
owletto-backend → server). Combines the original 7-commit history into
one because the rename touched every file in the diff.

What changed:
- ChatInstanceManager reads/writes agent_connections directly via
  AgentConnectionStore. Drops the parallel chat_connections table +
  ChatConnectionStore shim. One source of truth.
- Connection secrets live as secret:// refs inside the row's config
  JSON, resolved at runtime through SecretStoreRegistry. Same model as
  every other secret category — pluggable to AWS Secrets Manager / Vault
  / k8s without per-platform code paths.
  - normalizeConfigForStorage moves plaintext secrets into the registry
    via secretStore.put('connections/<id>/<field>') before save.
    Idempotent (already-ref values pass through).
  - resolveConfigForRuntime materializes refs back to values inside
    startInstance, throws on unresolvable refs.
  - removeConnection cascades deleteSecretsByPrefix in safe order
    (history → secrets → row); addConnection rollback uses the same
    order.
  - updateConnection's needsRestart resolves previous refs before
    comparing against caller plaintext, so idempotent lobu-apply re-runs
    don't trip spurious restarts.
- Migration: copies any chat_connections rows into agent_connections
  (filtering NULL template_agent_id orphans) before DROP. Embedded
  PGlite path mirrors the same copy+drop wrapped in a pg_tables
  existence check so fresh installs skip cleanly.
- agent-routes.ts: no-manager fallback writes return 503 instead of
  persisting plaintext directly into agent_connections.config.
- postgres-stores.ts: stops encrypting writes; persists config JSON
  as-is. decryptLegacyEncryptedConfig fallback keeps any pre-existing
  enc:v1: rows decryptable for graceful transition.
- platform.ts: getConnectionStore() added to CoreServices interface.
- Bundled small fixes: Telegram non-fatal setWebhook, http-proxy early
  error handlers, embedded-deployment env hygiene, core-services
  LOBU_PROVIDER_REGISTRY_PATH respect, agent_channel_bindings startup
  no longer deletes connections on secret resolution failure.
- Drive-by typecheck fixes for pre-existing root-tsc errors in
  agent-worker that blocked the pre-commit hook (unrelated to this
  PR's scope, but required to land cleanly):
  - just-bash-bootstrap.ts: cast envRecord to NodeJS.ProcessEnv for
    execFile's env option (Vite ImportMetaEnv augments ProcessEnv with
    BASE_URL/MODE/DEV/PROD/SSR fields stripEnv's return type doesn't
    include).
  - openclaw/tools.ts: same cast on the spawnHook env return.

Verified:
- Per-package bun run typecheck exit 0.
- Root bunx tsc --noEmit exit 0.
- bun test src/gateway/__tests__/ src/lobu — 559 pass / 0 fail.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

skip-size-check Bypass PR size gate for intentionally large single-concern changes triage:needs-human Triage agent escalated for human review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants