Repository navigation
feat(settings): sync case options and selection across devices - #732
opticon454 wants to merge 1 commit into
Conversation
6700fcb to
63234bb
Compare
|
Rebased this branch onto Force-pushed with an explicit lease on the previous PR head, Validation after resolving the conflict:
This resolves the merge conflict only. The four findings in the PR description remain open, and this PR remains a draft. Browser, mobile and performance suites were not run. Fresh upstream CI will report against the rebased head. |
63234bb to
aaf3ccd
Compare
|
Rebased onto release 1.47.0's Validation:
The four known findings remain open; this PR remains a draft. Browser, mobile and performance suites were not run on this branch. Fresh upstream CI will validate the rebased head. |
Adds an opt-in Sync cases across devices setting, off by default. The feature stores each case's Agent Teams and Opus 1M options on the server and follows the last selected case when another device returns to its tab. It uses the existing settings endpoint and adds a minor changeset and settings documentation.
Draft: four confirmed review findings must be fixed before this is ready to merge. Existing tests pass but do not cover these defects. The branch has been rebased onto upstream/master at
f1f7eec4; this draft contains one feature commit and seven changed files. The settings payload conflict was resolved by retaining both the sync field and upstream backup and agent settings.Open findings
settingsForNonAdminomitscaseOrderandlastUsedCasebut retains the newcaseSettingsmap. The settings load path then imports that map into local case options without a role check. Reproduced by applying a filtered administrator map while_settingsReadOnly()returns true. Redact the map server-side and gate client application on a confirmed writable role.alphaandbetaupdates. Send only the changed case and merge it inside upstream's existing serialised settings writer. Preserve input order for rapid saves from one device.syncCaseState: falseand a different validlastUsedCasestill changes selection. Refresh the cached preference and obey server authority before applying options or selection, including enable and disable transitions.These findings were reproduced with assertions against the real client methods and server redaction function. They concern this unmerged feature branch.
Completion plan
mutateSettingsFilefor serialised, atomic per-case merging. Preserve validation, the merged 500-case limit and existing access checks; do not introduce another persistence layer.Validation after rebasing
Rebased implementation commit: aaf3ccd29523bd5c70f6dc52edd2e8f88482fdf1. Upstream base:
f1f7eec4d6a54c73822d118262712535eea5fd28. No deployment or release is included.Release 1.47.0 rebase
Rebased onto
f1f7eec4d6a54c73822d118262712535eea5fd28in an isolated/tmpworktree, preserving the feature patch unchanged. Neither this PR nor the other rebased PR carries a change tosrc/web/public/whats-new.json, so regeneration was not needed. Full CI suite: 13,508 passed, 12 skipped, across 666 passing files and one skipped file. All 282 package tests and static/installer checks passed. The four open findings remain unresolved and this PR remains a draft.