Skip to content

Remove unused exports and helpers - #164

Merged
cursor[bot] merged 1 commit into
masterfrom
cursor/remove-unused-exports-a875
Nov 1, 2026
Merged

cursor[bot] merged 1 commit into
masterfrom
cursor/remove-unused-exports-a875

Conversation

@jonbeckman

Copy link
Copy Markdown
Contributor

Summary

Removes symbols that have no callers. Each one appears only at its definition. Live wrappers, package exports, and files stay.

This pull request uses release:none. The deletions are internal and have no user, administrator, or operator effect. It does not change VERSION or add a Tegami entry.

Removals and proof

Searches ran from the repo root with ripgrep, including ignored files other than node_modules, .git, dist, .alchemy, and .turbo:

rg -n --no-ignore -g '!node_modules' -g '!.git' -g '!dist' -g '!.alchemy' -g '!.turbo' '\bNAME\b'

Results before the deletion (definition sites only):

  • getWebRequest — packages/api/src/server/effect/services/auth.ts:158. requestFromSource stays and is still imported by packages/api/src/server/effect/handlers/shared/control-plane.ts.
  • getStoredAuthProviderRegistryForTesting — packages/api/src/server/background/db/auth-config.ts:123. getStoredAuthProviderRegistry stays.
  • CloudflareBindings — packages/api/src/server/effect/services/middleware.ts:5. getD1Drizzle — same file, line 12. getCloudflareBindings stays and is still used by control-plane.ts. The D1Drizzle service stays in packages/api/src/server/effect/db/d1-drizzle.ts.
  • annotateCurrentUserId — packages/api/src/server/effect/services/observability.ts:495. resetApiTelemetryForTests — same file, line 518 (empty body). annotateCurrentUserIdentity stays and is still called from control-plane.ts.
  • popularTagOrder — packages/api/src/server/background/db/repo-secrets.ts:71. rankPopularTags — same file, line 81. tagStatOrder stays and is still used by the popular-tags query in that file.
  • ModelDisplayInfo, ModelCategory, and MODEL_OPTIONS — only packages/shared/src/models.ts (lines 4, 9, and 14). normalizeModelId stays and is still imported by the provider catalog and session handlers. Call sites use RuntimeModelCategory, not ModelCategory.
  • SOLZERO_GITHUB_URL — scripts/releases/github-repo.ts:2. SOLZERO_GITHUB_REPO stays and is still imported by scripts/tegami.mts and scripts/releases/creative-release.ts.
  • FileChange, ChildSession, and SessionMetadata — only apps/web/src/types/session.ts. \bSessionMetadata\b does not match persistSessionMetadata. The Task interface in that file is also unused: the only other \bTask\b hits under apps/web are the tool-name string and comments in apps/web/src/lib/tool-formatters.ts. Imports of @/types/session only pull Artifact.

After the deletion, the same search returns no matches for those names.

Validation

  • nub run config:check
  • nub run typecheck
  • nub run lint
  • nub run format
  • No test covers these symbols. nub run test is the e2e suite and would not execute code that had no callers. I did not run it.

Checklist

  • I added or updated tests for behavior changes, or explained why tests are not needed.
  • I updated documentation and config examples when behavior or configuration changed.
  • I added a .tegami/ release entry, or explained why this pull request uses release:none.
  • I ran nub run config:check, nub run typecheck, nub run lint, nub run format, and nub run test.
  • I did not include credentials, private data, internal URLs, or organization-specific defaults.
  • I updated THIRD_PARTY_NOTICES.md for new third-party code or separately licensed assets.

The test checkbox is open because nub run test did not run. The other four commands did.

Left in place

  • apps/web/src/components/s0-logo-icon.tsx (S0LogoIcon) has no callers. The file stays.
  • makeS0ApiClient in packages/api/src/client.ts has no callers. It stays because the typed client migration is recent.
  • Workflow runtime helpers with no in-repo callers stay (isWorkflowRuntimeAbiVersion, getCurrentWorkflowRuntimeKernel, getWorkflowLoaderCacheKey, the isWorkflow*NodeType predicates, startWorkflowRunFromWebhook, validateWorkflowBuilderManifestSync).
  • Unused-looking names in files already changed by open PRs Run local e2e with a mock AI gateway binding #89, ci: report required checks on push, pull request, and merge queue #75, and Version Packages #155 stay, including packages/shared/src/s0-config.ts, packages/api/src/server/effect/services/providers.ts, packages/api/src/server/background/isolate/model.ts, and apps/api/infra/index.ts.
  • just-bash has no direct import in this repo. The lockfile shows agents and @cloudflare/think peer-depend on it, so it stays.
Open in Web Open in Cursor 

These symbols have no callers in the repo. Live aliases and functions they wrapped stay in place.

Co-authored-by: Jonathan Beckman <jonathantbeckman@gmail.com>
@jonbeckman jonbeckman added the release:none label Nov 1, 2026 — with Cursor
@jonbeckman
jonbeckman marked this pull request as ready for review November 1, 2026 09:16
@github-actions

github-actions Bot commented Nov 1, 2026

Copy link
Copy Markdown
Contributor

Tegami

This repository uses Tegami to manage releases. When your changes affect published packages, add a changelog file under .tegami/ before merging.

Create a changelog → · Changelog format

Release preview

Package Bump Version
solzero major 1.8.0 → 2.0.0

This PR does not add changelog files. Pending changelogs from other branches are included in the preview above.

Run nub run tegami locally to create a changelog interactively.

Managed by Tegami.

@github-actions

github-actions Bot commented Nov 1, 2026

Copy link
Copy Markdown
Contributor

🟢 e2e solzero-core: 11 passed, 35 left out by filters

2 agent steps · 2 replayed from cache

Change 8 files changed since e3ef6a5
Filter decision kept 10 of 45 tests, left out 35 (1 call, 23.8k tokens)

35 tests left out by filters
Test Filter Reason
tests/accounts.e2e.ts › create, use and revoke an isolated user API key decision 20% likely affected
tests/accounts.e2e.ts › Better Auth 1.7 account APIs select the local account row id decision 20% likely affected
tests/accounts.e2e.ts › Accounts settings shows GitHub as unlinked without OAuth providers decision 20% likely affected
tests/admin.e2e.ts › administrator pages show live control-plane configuration decision 20% likely affected
tests/advanced-sessions.e2e.ts › incognito sessions stay outside normal lists but open directly decision 20% likely affected
tests/advanced-sessions.e2e.ts › session MCP definitions and subagent preferences persist decision 20% likely affected
tests/api-routing.e2e.ts › API configuration has no separate API hostname decision 12% likely affected
tests/api-routing.e2e.ts › stage metadata binds only API paths and keeps public URLs distinct from internal transport decision 10% likely affected
tests/api-routing.e2e.ts › public prefix normalization respects Better Auth, API-key ownership and segment boundaries decision 6% likely affected
tests/auth.e2e.ts › sign-in gate protects every application route decision 7% likely affected
tests/auth.e2e.ts › credential sign-in opens the requested settings page decision 18% likely affected
tests/auth.e2e.ts › anonymous callers cannot access any protected API group decision 16% likely affected
tests/auth.e2e.ts › sign-out removes authenticated UI access decision 10% likely affected
tests/bots.e2e.ts › create a bot and manage a temporary routine through the UI decision 20% likely affected
tests/branding.e2e.ts › the selected deployment brand reaches the browser decision 10% likely affected
tests/branding.e2e.ts › health identifies the configured application without exposing configuration decision 14% likely affected
tests/branding.e2e.ts › OpenAPI uses the selected deployment brand decision 11% likely affected
tests/deployment-config.e2e.ts › PR helper branding keeps both persisted built-in skill identities usable decision 8% likely affected
tests/deployment-config.e2e.ts › a complete stage brand overrides environment branding and normalizes its values decision 6% likely affected
tests/deployment-config.e2e.ts › existing brand environment overrides work when the stage file omits brand decision 9% likely affected
tests/deployment-config.e2e.ts › profile validation and stage URLs select the same complete named file decision 9% likely affected
tests/deployment-config.e2e.ts › the stage secret writer includes only active references without printing their values decision 8% likely affected
tests/deployment-config.e2e.ts › the CLI rejects incomplete branding and unsafe executable names before deployment decision 5% likely affected
tests/deployment-config.e2e.ts › PlanetScale provisioning is optional, configurable, and rejects invalid capacity inputs decision 13% likely affected
tests/deployment-config.e2e.ts › OpenAPI identity uses the configured runtime brand decision 9% likely affected
tests/deployment-config.e2e.ts › preview and validation workflows target master only decision 4% likely affected
tests/session-transfer.e2e.ts › admin authentication transfer redeems once and retains its deep link decision 20% likely affected
tests/sessions.e2e.ts › a second account cannot read or mutate another account's session decision 20% likely affected
tests/sessions.e2e.ts › codex executes a real prompt and persists its output decision 20% likely affected
tests/settings.e2e.ts › MCP deep link and legacy settings URL open the MCP tab decision 20% likely affected
tests/settings.e2e.ts › theme preference survives reload decision 20% likely affected
tests/skills.e2e.ts › global skill defaults and per-user preferences persist independently decision 20% likely affected
tests/workflows.e2e.ts › workflow authoring, rename, export, disable and archive persist decision 20% likely affected
tests/workflows.e2e.ts › manual workflow executes JavaScript and stores a real R2 artifact decision 20% likely affected
tests/workflows.e2e.ts › invalid workflow definitions are rejected before storage decision 20% likely affected
All 11 tests in 6 files
Test Agent Time
🟢 tests/api-contract.e2e.ts · 1 passed 389ms
🟢 exported API key and session schemas decode actual Worker responses 389ms
🟢 tests/api-routing.e2e.ts · 2 passed 237ms
🟢 public API URLs retain the base path, stable webhook ID and OpenAPI server 33ms
🟢 real Worker service binding preserves auth, raw webhook bodies, streaming, redirects, cookies and WebSockets 204ms
🟢 tests/auth.setup.e2e.ts · 1 passed 2.5s
🟢 authenticate isolated admin 2.5s
🟢 tests/deployment-config.e2e.ts · 1 passed 8ms
🟢 resolved configuration compiles into narrow server identity inputs 8ms
🟢 tests/sessions.e2e.ts · 3 passed 1 step 18.7s
🟢 session tools, archive and restoration persist through the real Worker 1 step 4.0s
🟢 isolate executes a real prompt and persists its output 7.3s
🟢 opencode executes a real prompt and persists its output 7.4s
🟢 tests/settings.e2e.ts · 3 passed 1 step 12.0s
🟢 all settings categories load real data 4.8s
🟢 runtime default persists after reload 4.6s
🟢 secret editor creates, finds and deletes a disposable secret 1 step 2.5s

e2e 0.21.3 · 55.2s · local-cloudflare · run artifacts

@cursor
cursor Bot merged commit 66fa090 into master Nov 1, 2026
18 checks passed
@cursor
cursor Bot deleted the cursor/remove-unused-exports-a875 branch November 1, 2026 09:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants