Step 3 of strategy/01-git-excision.md: the popover strip is Info/Theme/Sync, the titlebar widget says the name alone, the card window's History section and its slot go, Board ▸ Pull/Push comes out with the RemoteCommands scaffold, and View ▸ History re-tags from the commit trail to the deferred foreign-change journal. The Sync placeholder re-annotates to the future ops-based sync service. Four git test suites leave with the surfaces they pinned (BoardGitSetup, BoardInfoPopover, BranchSwitch, GitUndo). The git engine still compiles underneath, unreferenced by UI. 2,890 tests green. Claude-Session: https://claude.ai/code/session_014PtZdPwqZuqEDLc6wZMtEy
33 lines
1.7 KiB
Swift
33 lines
1.7 KiB
Swift
import SwiftUI
|
|
|
|
/// **The board popover's Sync tab — a standing placeholder** (03-board-ui.md § Board popover,
|
|
/// added 2026-08-07, the same night the settings sheet retired).
|
|
///
|
|
/// The tab exists ahead of its contents, deliberately: the strip claims the position where the
|
|
/// future **ops-based sync service** will live — semantic ops, a server-side worktree API, with the
|
|
/// phone and (eventually) the web as worktree clients speaking that protocol
|
|
/// (strategy/01-git-excision.md ▸ Successors) — so that when the sync-service workstream's cards
|
|
/// land they land *in* a surface rather than re-arguing the strip. **Git is gone**
|
|
/// (strategy/01-git-excision.md, 2026-08-08): this tab was never the remote half of the git story
|
|
/// and now carries no trace of one. None of the service's shape is ruled by this file: that is its
|
|
/// own workstream's, with its own docs, and a placeholder that decided it by accident would be the
|
|
/// worst way to answer it.
|
|
///
|
|
/// What renders meanwhile is one honest sentence: the fact, stated plainly — never a mock control,
|
|
/// never a greyed-out preview of features that do not exist (teach, never look broken).
|
|
struct BoardSyncTabView: View {
|
|
|
|
/// The popover's own padding figure (`BoardInfoView.inset`), matching every other tab's
|
|
/// parameter — the tab pads by this amount instead of restating the derivation.
|
|
let inset: CGFloat
|
|
|
|
var body: some View {
|
|
Text("Nothing here yet.")
|
|
.font(.caption)
|
|
.foregroundStyle(.secondary)
|
|
.fixedSize(horizontal: false, vertical: true)
|
|
.padding(inset)
|
|
.frame(maxWidth: .infinity, alignment: .leading)
|
|
}
|
|
}
|