Skip to content

[Feat] Add private per-user personalization - #2482

Merged
brunobergher merged 13 commits into
developfrom
feature/private-user-personalization-3lx9n3gs2o2om
Sep 11, 2026
Merged

[Feat] Add private per-user personalization#2482
brunobergher merged 13 commits into
developfrom
feature/private-user-personalization-3lx9n3gs2o2om

Conversation

@roomote-roomote

@roomote-roomote roomote-roomote Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

​Created by Roomote. Follow up by mentioning @roomote-roomote, in the web UI, or in Slack.

What changed

  • Add an encrypted, owner-scoped How to work with me setting with an 8,000-character editor, default-on conversational learning, optimistic concurrency, and Reset.
  • Keep manual edits, explicitly stated conversational preferences, and tentative inferences in separate priority layers so learning cannot silently erase explicit guidance.
  • Load private context for the trusted current speaker in Fast Sessions and for the acting user in fresh and resumed human-owned tasks, while excluding automation and maintenance events.
  • Add actor-bound private learning tools for Fast and task runtimes, enforce opt-out server-side, await serialized persistence before reporting success, and remove private update arguments and results before canonical transcript persistence.
  • Document the behavior, privacy boundary, and infrastructure retention limits in Personal Settings docs.

Why this change was made

Roomote should adapt to each teammate without turning personal preferences into deployment-shared memory or task metadata. The implementation treats personalization as a dedicated private data class rather than relying on prompt instructions or transcript visibility alone.

Impact

Users can edit or reset their own guidance and keep it active while disabling new learning. Conversational confirmations now reflect whether the update was actually saved, declined after opt-out, or failed during persistence. Reset blocks immediate inferred reconstruction; a new explicit preference, non-empty manual save, or explicit learning re-enable safely starts post-reset inference again. Other members and admins cannot access another user's personalization through normal UI or API paths; private context is excluded from persisted task prompts, shared transcripts, summaries, Brain ingestion, and ordinary tool output. Deployment operators and configured infrastructure, model, backup, and retention systems remain outside that application-level privacy boundary.

Focused database, web settings, Fast prompt/service, task dequeue/resume, API authorization, worker tool, and transcript-scrubbing tests pass. Affected package typechecks, repository pre-push lint/type/knip gates, docs validation, and git diff --check also pass.

@roomote-community

roomote-community Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

No code issues found. See task

  • Reset permanently blocks inferred personalization updates even while learning remains enabled (packages/db/src/lib/user-personalization.ts:146).
  • Personalization updates can be confirmed despite failed or opted-out background persistence (packages/cloud-agents/src/server/user-personalization.ts:164).

Reviewed 6aaa95d

Comment thread packages/db/src/lib/user-personalization.ts
@roomote-roomote

roomote-roomote Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

Resolved the reset-boundary finding in 422ab955: immediate historical inference remains blocked after Reset, while a new explicit preference, non-empty manual save, or explicit learning re-enable safely resumes later inference. The branch was also merged with current develop in 3b6ca2c4; focused DB/prompt tests, affected typechecks, diff checks, and pre-push gates pass.

Comment thread packages/cloud-agents/src/server/user-personalization.ts Outdated
@roomote-roomote

roomote-roomote Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

Resolved the persistence-outcome finding in 98ff8e3a: Fast and task-run callers now await serialized persistence, report success only for saved writes, and surface opt-out or persistence failures without a false confirmation. Corrected the related database test expectation in 6aaa95da; focused serializer/Fast/API/worker/database tests and pre-push gates pass, the GitHub Test and Roomote review checks are green, and the review thread is resolved. The worker Docker build remains in progress; no checks are currently failing.

@roomote-roomote
roomote-roomote Bot marked this pull request as ready for review September 11, 2026 11:29
@brunobergher
brunobergher merged commit f437b9c into develop Sep 11, 2026
18 checks passed
@brunobergher
brunobergher deleted the feature/private-user-personalization-3lx9n3gs2o2om branch September 11, 2026 13:08
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