Repository navigation
Closed
Labels
area:fullstackEnd-to-end Host and Client implementationEnd-to-end Host and Client implementationfeature:exportExport, import, backup, and transferExport, import, backup, and transferready-for-humanRequires human implementationRequires human implementationscope:tracerHuman-testable implementation sliceHuman-testable implementation slice
Milestone
Description
Parent
Profile Portability implementation #882; accepted design #76 / PR #881.
What to build
Human organizes Channels into sections, pins/hides items and changes arrangement through the existing roster UI, then reopens the Profile in another Client or after Host restart and sees the same arrangement. Move this BotHarness-owned arrangement from the legacy DSH storage domain to its owning SQLite module so one complete operational snapshot includes it.
Acceptance criteria
- One-time import preserves section IDs/names/members/order, pins, hidden entries and root arrangement. Import an empty database target coherently with a durable marker; an existing target is not overwritten.
- Normal reads/writes, seven existing roster commands and subsequent arrangement commands retain their production Host↔Client contract, single-membership/idempotency rules and post-commit refresh behavior while using the shared owner/lease/schema lifecycle.
- Source-domain import failure, database recovery and competing writer are explicit and cannot silently become an empty editable arrangement. Preserve migration input for documented recovery; no normal-runtime dual-write or domain fallback.
- Sorting preferences remain in native DSH Settings and per-Client collapse stays local; no invented second settings authority. Neither hiding nor arranging a Channel deletes its content.
- Real DSH E2E migrates a populated source, reorganizes/pins/hides through production UI, reopens another Client and cold-restarts with the same arrangement. Provide actual screenshot/recording, focused migration/rollback tests and required checks.
- Update current persistence documentation and bilingual Release Ledger; label this as arrangement ownership delivery, not Profile Backup delivery.
Blocked by
- None — independently runnable after accepted design handoff. Foundation:operational database owner / writer lease / schema generation #79 supplies the database owner and M3: roster 排布迁移到 ctx.storage(sections / pins / sectionOrder,宿主生成 id) #66 supplies the current roster contract. No artificial dependency on the Registry/Model migration ticket.
Metadata
Metadata
Assignees
Labels
area:fullstackEnd-to-end Host and Client implementationEnd-to-end Host and Client implementationfeature:exportExport, import, backup, and transferExport, import, backup, and transferready-for-humanRequires human implementationRequires human implementationscope:tracerHuman-testable implementation sliceHuman-testable implementation slice
Type
Projects
- StatusShow more project fieldsDone
Activity
DoodleBears commentedon Oct 5, 2026
Agent work claim
codex/local/01a0f25f-2150-75e3-8895-23d35394b8d8(not a DSH Session)codex/885-roster-database#891 merged after Human approval and complete exact-head CI. At claim time #885 had no existing claim, assignee or implementation PR. Stop at this issue's PR for genuine visual evidence/Human QA; earlier screenshot exceptions do not carry forward.
DoodleBears commentedon Oct 5, 2026
Agent work outcome
codex/local/01a0f25f-2150-75e3-8895-23d35394b8d8(not a DSH Session)8642de8dbe86b1e9cf36c97381deb464e177e357Schema Generation 56 moves the existing roster arrangement into its owning Profile SQLite module. Validated one-time import commits the arrangement and marker together, retains source input, refuses conflicting/unavailable targets and preserves production commands, source independence, native sorting and per-Client collapse. Whole-command transactions preserve Channel content and publish after commit.
Real DSH verification covered a populated generation-55 baseline, upgrade, all arrangement commands/batches, a separate authenticated HTTP/SSE connection receiving the post-commit invalidation, and cold restart with a deliberately damaged disposable QA legacy source. Exact arrangement and all five Channels' original messages remained. Evidence is linked in the PR; it explicitly records
browserInteractionVerified:falseandactualSecondBrowserClientVerified:false.The local full suite passed: 314 files, 2570 tests passed and 9 skipped. Lint, format, typecheck, build, release checks, font regeneration and the 332-page docs build passed. Independent final-head Standards review has 0 hard violations/remaining findings; Spec review has 0 implementation findings and 1 remaining visual acceptance criterion. Exact-head remote CI is running: https://github.com/BotHarness/BotHarness/actions/runs/37345492452 .
Remaining acceptance: real production UI reorganization, an actual second browser Client, genuine screenshots/recording and Human QA. Browser tool policy denies the local QA URL and prohibits alternate capture paths. The restriction is preserved; no simulated evidence is offered. Earlier exceptions for #883/#884 do not apply here. The isolated Host remains available through private local review instructions.
This issue stays open in Draft handoff form. No merge or #886 implementation will begin without Human approval.
Persist Channel roster arrangement in the Profile database (#892)
DoodleBears commentedon Oct 5, 2026
Agent work outcome
codex/local/01a0f25f-2150-75e3-8895-23d35394b8d8(not a DSH Session)8642de8dbe86b1e9cf36c97381deb464e177e3578f216948d3f24abab35edd370834737ec348eef2The Human explicitly approved merge after the genuine UI / actual second browser Client / screenshot gap had been disclosed. These items remain unverified; this is not a visual acceptance claim or an evidence exception for subsequent tickets.
Exact-head CI passed in attempt 2, including lint, format, typecheck, all tests, build, generated Client consistency and docs. Attempt 1 exceeded the source-policy test timeout; the successful rerun did not change code: https://github.com/BotHarness/BotHarness/actions/runs/37345492452/attempts/2 . Final independent Standards review found 0 violations/findings; Spec review found 0 implementation findings and the disclosed visual acceptance gap. CodeRabbit's Draft skip was not treated as a code review.
Real DSH production API/SSE, migration, complete arrangement commands and cold restart evidence remain linked in #892. #886 remains blocked by #138's accepted deletion/Purge contract and any actual canonical ledger implementation prerequisite; no destructive implementation or placeholder purge protection is introduced here.