Skip to content

feat(dashboard): show interests per synced profile - #376

Merged
A-EDev merged 15 commits into
mainfrom
feat/dashboard-interests
Nov 1, 2026
Merged

A-EDev merged 15 commits into
mainfrom
feat/dashboard-interests

Conversation

@A-EDev

@A-EDev A-EDev commented Oct 31, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Profile picker: the Flow Neuro page has a picker for the running profile and the other profiles that sync with linked devices (?profile= in the route).
  • Another profile, read only: it shows the same persona components, fed a brain, persona and music taste read from that profile's own database on this computer.
    • The new command get_profile_interests opens the database with open_closed and reads without writing. Nothing is loaded into the resident brains.
    • Nothing goes to the server.
  • No editing in read-only mode: unblocking, blocked music artists, learning activity, import, export and reset are hidden. BlockedContent hides its unblock buttons when no handler is given.
  • Shared logic, not copies:
    • services::profile_interests::stored_interests computes from a brain value with the existing classify_persona and taste_profile.
    • PersonaDetails moved there and get_flow_persona uses it.
    • The music store's reader became stored_brain and is shared. FlowNeuro gets a read-only stored_brain.
  • Dashboard link: each synced profile row on the Dashboard links to View interests. The Dashboard itself shows none.

Related issue

Flow-Tube/Flow#1034 (interests per synced profile, decrypted on the device only).

Change type

  • Bug fix
  • Feature
  • Refactor or maintenance
  • Documentation
  • Build, packaging, or CI

Validation

Run on the head of this branch (91dc5e2), in its worktree with the shared Cargo target dir:

  • pnpm test: 191 files, 1105 tests passed
  • pnpm build: passed
  • cargo fmt --manifest-path src-tauri/Cargo.toml --all -- --check: clean
  • cargo clippy --manifest-path src-tauri/Cargo.toml --all-targets --all-features: finished; every warning it prints is on a line older than this stack (checked with git blame)
  • cargo test --manifest-path src-tauri/Cargo.toml --all-targets --all-features: 1118 passed, 0 failed, 9 ignored
  • I smoke-tested the affected desktop behavior.

New tests:

  • services::profile_interests: a stored brain is shown as stored and left untouched; a profile without brains shows fresh ones and stores nothing.
  • src/lib/linked/interestChoices.test.ts: which profiles the picker offers.

Screenshots or recordings

Risk and compatibility

  • No migration. Reading another profile opens its database for a moment and closes it; nothing is written.

  • Another profile's view uses its stored brain as last saved, without the tidy-up the running profile applies when it loads.

  • No new secrets, private data, telemetry, or broad Tauri permissions were introduced.

  • User-facing documentation was updated where needed.

  • Dependency and lockfile changes are intentional and limited to this PR.

  • Breaking changes and upgrade steps are clearly documented.

Copilot AI balanced review requested due to automatic review settings November 1, 2026 18:11

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota. Try requesting a review at a lower effort level.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

@A-EDev
A-EDev changed the base branch from feat/sync-dashboard to main November 1, 2026 22:04
@A-EDev
A-EDev merged commit 8c25a4c into main Nov 1, 2026
7 checks passed
@A-EDev
A-EDev deleted the feat/dashboard-interests branch November 1, 2026 22:39
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