Skip to content

fix: complete pinned message lifecycle - #1

Merged
jjjhenriksen merged 6 commits into
jjjhenriksen:codex/pinned-messagesfrom
PollyBot13:assist/pinned-messages-lifecycle
Jul 28, 2026
Merged

fix: complete pinned message lifecycle#1
jjjhenriksen merged 6 commits into
jjjhenriksen:codex/pinned-messagesfrom
PollyBot13:assist/pinned-messages-lifecycle

Conversation

@PollyBot13

@PollyBot13 PollyBot13 commented Jul 28, 2026

Copy link
Copy Markdown

Related: openclaw#117

What Problem This Solves

Fixes the remaining lifecycle gaps in the pinned-messages feature branch: pins could race with message deletion on PostgreSQL, disappear from exports, survive message deletion without a matching event, fail silently in thread UI, and remain visible in direct-message navigation.

Why This Change Was Made

This assistance branch merges current upstream main into codex/pinned-messages, preserves Jacqueline's public pin API/event names and 100-pin limit, and addresses the five actionable ClawSweeper findings without expanding the feature contract.

The backend now serializes PostgreSQL pin/delete changes, exports pins from both stores, and removes a pin in the same delete transaction before emitting message.deleted. The UI surfaces pin failures, keeps the open pinned list reconciled after edits/deletes, and limits pin controls to channel conversations.

Maintainer acceptance of shared pins as a durable public API/export/event contract remains a product decision for the original PR.

User Impact

Channel pins remain consistent across deletion, realtime updates, and exports. Pin failures are visible instead of silent, and direct-message views no longer expose unsupported pin controls.

Evidence

  • umask 0022; pnpm check — passed
  • pnpm test:e2e tests/e2e/pinned-messages.spec.ts --project=chromium — 5 passed
  • go test ./apps/api/internal/store/sqlite ./apps/api/internal/store/postgres ./apps/api/internal/httpapi — passed
  • pnpm generate:sqlc — passed
  • pnpm typecheck && pnpm -r typecheck && pnpm lint && pnpm fmt:check && git diff --check — passed
  • Independent Codex review of the complete uncommitted diff found no actionable regressions.

The PostgreSQL integration suite compiles locally but skips without CLICKCLACK_POSTGRES_TEST_DSN; hosted CI remains the authoritative PostgreSQL run. Exact-head screenshots were inspected locally for the visible thread error and absent desktop-DM pin controls; public CI and ClawSweeper proof should be refreshed on the original PR after this branch is accepted.

AI-assisted: implementation, tests, and review were performed with Codex under human direction.

steipete and others added 6 commits July 26, 2026 18:53
…#133)

* feat(embed): follow the host application theme

* fix(embed): isolate host themes and refresh embedded assets

* test(embed): prove theme matching across real browser origins

* build(embed): refresh browser-verified web assets

* build(embed): remove stale hashed web bundles

---------

Co-authored-by: Peter Steinberger <steipete@golden-gate.local>
* fix(embed): apply validated host palette before first paint

* build(embed): refresh first-paint palette web assets

---------

Co-authored-by: Peter Steinberger <steipete@golden-gate.local>
…s-lifecycle

# Conflicts:
#	apps/api/internal/webassets/dist/200.html
#	apps/api/internal/webassets/dist/_app/immutable/entry/app.C0jTAm08.js
#	apps/api/internal/webassets/dist/_app/immutable/nodes/0.erneJbxK.js
#	apps/api/internal/webassets/dist/_app/immutable/nodes/11.BPwHOykE.js
#	apps/api/internal/webassets/dist/_app/immutable/nodes/11.COwgNK6M.js
#	apps/api/internal/webassets/dist/_app/immutable/nodes/11.vvKR-XrD.js
#	apps/api/internal/webassets/dist/_app/immutable/nodes/12.D2jzbKVo.js
#	apps/api/internal/webassets/dist/_app/immutable/nodes/13.0lkaA9sE.js
#	apps/api/internal/webassets/dist/_app/immutable/nodes/3.BoPssj0u.js
#	apps/api/internal/webassets/dist/_app/immutable/nodes/4.B1Q5W4BL.js
#	apps/api/internal/webassets/dist/_app/immutable/nodes/4.CV83zLxh.js
#	apps/api/internal/webassets/dist/_app/immutable/nodes/4.D81lYOij.js
#	apps/api/internal/webassets/dist/_app/immutable/nodes/5.C04PopFT.js
#	apps/api/internal/webassets/dist/_app/immutable/nodes/5.DW2e0mkr.js
#	apps/api/internal/webassets/dist/_app/immutable/nodes/5.gnDXXEBJ.js
#	apps/api/internal/webassets/dist/index.html
@jjjhenriksen
jjjhenriksen merged commit 85292b6 into jjjhenriksen:codex/pinned-messages Jul 28, 2026
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.

3 participants