Files
lanework/Kanban/UI/Board/BoardSyncTabView.swift
T
rzen 1d97a2931c The git surfaces leave the glass — tab, trail, branch line, and the remote pair, peeled
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
2026-08-08 10:52:57 -04:00

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)
}
}