Skip to content

fix(cron): pass 'id' instead of 'jobId' to gateway#180

Merged
steipete merged 2 commits intoopenclaw:mainfrom
adamgall:fix/cron-tool-jobid-to-id
Jan 4, 2026
Merged

fix(cron): pass 'id' instead of 'jobId' to gateway#180
steipete merged 2 commits intoopenclaw:mainfrom
adamgall:fix/cron-tool-jobid-to-id

Conversation

@adamgall
Copy link
Copy Markdown

@adamgall adamgall commented Jan 4, 2026

The cron tool was passing { jobId } to the gateway for update/remove/run/runs actions, but the gateway protocol schema expects { id }. This caused validation errors when trying to update or remove cron jobs via the tool.

Fixes the parameter name while keeping the external tool API unchanged (still accepts jobId from callers).

Testing

All existing tests pass.

@steipete
Copy link
Copy Markdown
Contributor

steipete commented Jan 4, 2026

Thanks Adam! Talking a look.

Clawd and others added 2 commits January 4, 2026 16:15
The cron tool was passing { jobId } to the gateway for update/remove/run/runs
actions, but the gateway protocol schema expects { id }. This caused validation
errors when trying to update or remove cron jobs via the tool.

Fixes the parameter name while keeping the external tool API unchanged (still
accepts 'jobId' from callers).
@steipete steipete force-pushed the fix/cron-tool-jobid-to-id branch from 3c63c71 to c50b64e Compare January 4, 2026 16:18
@steipete steipete merged commit a2d7632 into openclaw:main Jan 4, 2026
11 checks passed
slathrop referenced this pull request in slathrop/openclaw-js Feb 11, 2026
…plan

Tasks completed: 2/2
- Port onboarding shell completion auto-install (commit #180)
- Port plugins list source display (commit #182)

SUMMARY: .planning/phases/19-misc-fixes-cleanup/19-03-SUMMARY.md
dgarson referenced this pull request in dgarson/clawdbot Feb 22, 2026
dalefrieswthat pushed a commit to dalefrieswthat/openclaw that referenced this pull request Feb 25, 2026
songliu0403-rgb pushed a commit to songliu0403-rgb/openclaw that referenced this pull request Feb 26, 2026
ph0t0bar added a commit to ph0t0bar/openclaw that referenced this pull request Mar 16, 2026
- Add 10 PRs from Mar 15-16 to PRD-Action-Plan Section 7
- Update LAUNCH-CRITICAL-PATH with 11:08 UTC metrics
- Create daily memory log for 2026-03-16

PRs tracked (from Hub messages):
- opoerator-hub: openclaw#180-187 (8 PRs)
- dropanywhere-app: openclaw#150
sdntsng added a commit to tryvinci/engram-openclaw that referenced this pull request Mar 24, 2026
* feat(data-explorer): searchable icon-grid view of ingested connector data (openclaw#174)

Closes openclaw#173

- Backend: GET /v1/connectors/data — paginated, filterable, searchable
  query over connector_data_index (one entry per source doc). Adds
  store.list_connector_index_entries() with regex text search, provider
  filter, and skip/limit pagination.
- Frontend hook: useConnectorData(q, source, page) with abort-controlled
  fetch and debounce handled in the page.
- Frontend page: /dashboard/data — Google Drive-style icon grid with
  per-provider icons (Slack, Notion, Drive, Fathom), debounced search
  bar, source filter pills, spring-animated detail drawer, pagination,
  and empty state.
- Header: adds "Data" nav link with FolderSearch icon.

Co-authored-by: Claude Sonnet 4.6 <[email protected]>

* checkpoint (openclaw#177)

* feat(memory): add admin debug endpoints

* feat(memory): wire chat and slack publishers

* feat(memory): make synthesis profiles pluggable

* feat(frontend): add memory admin debug page

* feat(backend): publish refresh outputs to memory

* chore(dev): start memory with root dev loop

* feat(memory): add postgres storage provider

* feat(connectors): add slack memory sync observability

* docs(memory): document technical orchestration

* build(memory): generate and verify code mind map

* fix(frontend): remove leftover connectors merge marker

* docs(engram-chat): add connector migration matrix

* feat(engram-chat): migrate connector oauth parity

* feat(engram-chat): migrate connector sync to memory

* feat(engram-chat): migrate fathom webhook ingest

* docs(engram-chat): record remaining backend legacy surface

* chore(repo): remove stray ds store files

* refactor(routes): retire legacy backend chat surface

* fix(engram-chat): expose connector sync state collection

* feat(memory): include references in chat retrieval

* feat(memory): tighten connector retrieval semantics

* feat(engram-chat): add mongo-backed chat prompt configs

* feat(engram-chat): compose chat prompts at runtime

* docs(engram-chat): document prompt override workflow

* fix(engram-chat): restrict prompt overrides to admins

* feat(frontend): add prompt admin controls to memory page

* feat(prompts): scope product prompt control to admins

* build(dev): add oauth tunnel startup command

* docs(engram-chat): document stable oauth callbacks

* feat(engram-chat): add direct chat fallback for local runtime

* feat(frontend): enrich memory admin prompt controls

* feat(frontend): add admin workspace debug portal

* feat(frontend): fold memory into brand brain experience

* fix(memory): repair admin event and stats endpoints

* fix(frontend): expose full prompt catalog and route to chat

* feat(memory): add user-scoped memory steering

* feat(frontend): add explicit brand team switcher

* refactor(frontend): move prompt governance into admin portal

* feat(frontend): streamline brand switcher and add new brand entry

* fix(frontend): route team workspace to backend api

* build(dev): mirror runtime logs to root file

* fix(frontend): always open brand switcher menu

* refactor(frontend): remove team and data from primary nav

* feat(frontend): embed data explorer into connectors

* feat(frontend): add connect and explore tabs to connectors

* fix(frontend): load connector explorer data from backend

* fix(chat): keep product context across follow-up turns

* fix(chat): ground brand-scoped turns in profile context

* fix(chat): add website identity to brand context

* docs(traceability): capture aligned scope

* feat(chat): trace sync runs and expose admin inspection

* test(chat): add context regression harness

* feat(chat): expose retrieval provenance in traces

* feat(chat): trace streamed chat runs

* feat(frontend): inspect chat traces from admin portal

* feat(multi-brand): full multi-brand support — routing, access control, delete, refresh fix (openclaw#180)

* feat(multi-brand): support multiple brands per user (openclaw#178)

Backend:
- Store: add list_brand_profiles_for_user (all owned+member brands),
  create_brand_profile (new insert), upsert_brand_profile_by_id (owner-only update by id)
- Brand router: POST /v1/brand creates a new brand; GET /accessible now returns
  ALL owned and member brands via list_brand_profiles_for_user
- Add _get_brand_for_user helper for consistent owner/member access control
- Thread brand_id query param through /profile, /website-identity, /refresh,
  /refresh-status, /today, _trigger_refresh_task, _generate_daily_brief_task
- POST /profile accepts ?brand_id= to update a specific brand (owner only)
- Chat: ChatRequest.brand_id optional field; _get_context and run_content_pipeline
  tool respect active brand_id

Frontend:
- BrandContext: add createBrand(); saveTracking and setBrandThemeEnabled now
  pass ?brand_id= when activeBrandId is set
- useDailyBrief: accept brandId option, thread through today/refresh/refresh-status/
  website-identity API calls
- Header BrandSwitcher: "New brand" inline form to create additional brands

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>

* fix(multi-brand): clear stale activeBrandId on 403/404 profile fetch

If localStorage has a brand_id the user no longer has access to,
the profile request returns 403. Clear the key and retry without it.

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>

* feat(header): always show brand dropdown with + Add brand button

Removed the single-brand shortcut that rendered a plain link with no
dropdown — the trigger now always opens the dropdown, giving every user
access to the brand list and the inline "Add brand" form.

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>

* feat(multi-brand): add brand via website URL, not brand name

POST /v1/brand now accepts website_url, derives a seed name from the
domain, persists the new brand, then fires _trigger_refresh_task in the
background — same extraction flow as first-brand onboarding.

Frontend: createBrand() accepts a URL; Header "Add brand" input shows a
Globe icon with placeholder "example.com" and a "Go" submit button.

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>

* chore: restore stashed session changes (brand delete, context ACL, team brand_id, store methods)

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>

* fix(multi-brand): correct brand routing across all pages and fix refresh crash

- store: add get_brand_for_user() — single access-control resolver (owner or member)
- brand.py: remove local _get_brand_for_user(), replace all 7 call sites with store method
- chat.py: replace two inline access-control blocks with store.get_brand_for_user()
- context.py: simplify _assert_brand_access() to use store.get_brand_for_user()
- brand.py _synthesize_brief: fix NameError — bare brand_id → str(brand.id or "")
- useDailyBrief: add brandId to useCallback dep arrays (fetchBrief, fetchWebsiteIdentity, fetchRefreshStatus) — was stale on brand switch
- today/page: pass activeBrandId to useDailyBrief
- brand-brain/page: pass brand_id param to /v1/brand/profile and /v1/brand/website-identity fetches
- team/page: add useBrandProfile, pass brand_id to all 4 team API calls, add brandParam to fetchTeam deps

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>

---------

Co-authored-by: Claude Sonnet 4.6 <[email protected]>

* feat(backend): add agent web research endpoint

* feat(chat): trigger web research from search intent

* feat(chat): add search policy prompt section

* feat(ux): show loading indicator when a new brand is being initialized

- toast.loading/success/error pair in BrandSwitcher for full-lifecycle feedback
- animated skeleton loading row appears in brand list while creation is in progress
- all brand-switch and delete buttons disabled while creating to prevent race conditions
- deferred setActiveBrandId until after fetchBrand resolves so the switcher does not flip to the new brand before its profile is ready

Closes openclaw#181

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>

* fix(frontend): surface saved search data in explore

* feat(chat): stream agent activity summaries

* fix(frontend): soften technical thinking summaries

* feat(chat): add langfuse tracing support

* feat(admin): surface langfuse metadata in traces

* speed up brand refresh

* fix(openclaw): bind gateway to 0.0.0.0 on Render

Render requires the service to listen on 0.0.0.0 for port detection.
Add dockerCommand to override the Dockerfile CMD with --bind lan --port 8080,
and remove the no-op OPENCLAW_GATEWAY_BIND env var (not read by the codebase).

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>

---------

Co-authored-by: Claude Sonnet 4.6 <[email protected]>
Co-authored-by: sdntsng <[email protected]>
Fato07 pushed a commit to Fato07/elav that referenced this pull request Mar 26, 2026
Use roleLabels lookup in list view subtitle and AgentProperties
panel instead of raw role strings.

Fixes openclaw#180

Co-Authored-By: Claude Opus 4.6 <[email protected]>
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