Addresses the documentation/convention warnings from the #119 review: - .env.example: add the GIT-SYNC block (9 GIT_SYNC_* vars with defaults), noting GIT_SYNC_SERVICE_USER_ID is required when sync is enabled. - yjs-body-merge.ts: translate the Russian review note in the docstring to English (comments-only-in-English rule). - persistence.extension.ts: correct the stale "git-sync writes are full-body replaces" rationale — a git-sync write is now a block-level merge into the live doc, which is why it is debounced like a human edit rather than snapshotted. - history-item.tsx: the GitSyncBadge version is created on the PUSH path (writing the git body back into the doc), not by the pull — fix the comment. - edit-space-form.tsx: log the raw error in the git-sync toggle catch instead of swallowing it (AGENTS.md). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
38 lines
1.1 KiB
TypeScript
38 lines
1.1 KiB
TypeScript
import { Badge, Tooltip } from "@mantine/core";
|
|
import { IconGitMerge } from "@tabler/icons-react";
|
|
import { useTranslation } from "react-i18next";
|
|
|
|
interface GitSyncBadgeProps {
|
|
authorName?: string;
|
|
}
|
|
|
|
/**
|
|
* Badge marking a version produced by git-sync (provenance §8.1). The history
|
|
* version is created on the PUSH path — when an incoming git body is written back
|
|
* into the Docmost doc — not by the pull itself. Like {@link AiAgentBadge} it is
|
|
* ADDITIVE — shown next to the human author, never replacing them — but a git-sync
|
|
* edit is NOT an agent edit and has no chat to deep-link into, so it is a small,
|
|
* neutral, non-clickable label.
|
|
*/
|
|
export function GitSyncBadge({ authorName }: GitSyncBadgeProps) {
|
|
const { t } = useTranslation();
|
|
|
|
const tooltip = t("Synced from Git on behalf of {{name}}", {
|
|
name: authorName ?? "",
|
|
});
|
|
|
|
return (
|
|
<Tooltip label={tooltip} withArrow>
|
|
<Badge
|
|
size="sm"
|
|
variant="light"
|
|
color="gray"
|
|
radius="sm"
|
|
leftSection={<IconGitMerge size={12} stroke={2} />}
|
|
>
|
|
{t("Git sync")}
|
|
</Badge>
|
|
</Tooltip>
|
|
);
|
|
}
|