Skip to content

Commit 4339563

Browse files
committed
Merge remote-tracking branch 'origin/main'
2 parents 695b873 + 8427679 commit 4339563

File tree

17 files changed

+337
-24
lines changed

17 files changed

+337
-24
lines changed

docs/changelog.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Changelog
22

3+
## v0.2.2
4+
5+
- Fix post-pull sync using wrong base: after git pull, the sync engine now uses the pre-pull commit as the merge base, correctly detecting remote vs local changes instead of always keeping local
6+
37
## v0.2.1
48

59
- Handle store config conflicts during git pull

docs/documentation.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,11 @@ Untrack patterns are persisted in the local database and in `sync-settings.json`
245245

246246
If your data directory is connected to a remote git repository, use the **Push** button in the footer to push your store to the remote. This backs up your AI configs and makes them available on other machines.
247247

248-
Use the **Pull** button to pull the latest changes from the remote. This will merge the remote changes into your local store.
248+
Use the **Pull** button to pull the latest changes from the remote. After pulling, the sync engine automatically runs a full sync pass using the **pre-pull state** as the merge base. This correctly detects which files were changed by the remote vs which were changed locally:
249+
250+
- **Only remote changed** — updates are applied to local targets automatically
251+
- **Only local changed** — local changes are preserved and pushed back to the store
252+
- **Both changed** — non-overlapping edits are auto-merged; overlapping edits create a conflict for manual resolution
249253

250254
## Setting Up on a New Machine
251255

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "ai-sync",
33
"author": "Anh-Thi Dinh",
4-
"version": "0.2.1",
4+
"version": "0.2.2",
55
"repository": "https://github.com/anhthiding/ai-sync",
66
"private": true,
77
"license": "MIT",

packages/landing/src/components/sections/features.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ const features = [
9494

9595
export function FeaturesSection() {
9696
return (
97-
<section className="py-20">
97+
<section className="py-12 sm:py-16 md:py-20">
9898
<h2 className="text-3xl font-bold tracking-tight text-center mb-12">Main Features</h2>
9999
<div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4">
100100
{features.map((feature) => (

packages/landing/src/components/sections/hero.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
export function HeroSection() {
22
return (
3-
<section className="py-24 text-center animate-fade-up delay-100">
3+
<section className="py-12 sm:py-16 md:py-20 text-center animate-fade-up delay-100">
44
<img src="/logo.svg" alt="AI Sync logo" className="mx-auto mb-6 h-20 w-20" />
55
<h1 className="text-4xl sm:text-5xl lg:text-6xl font-bold tracking-tight leading-tight mb-6">
66
Sync Your AI Configs

packages/landing/src/components/sections/how-it-works.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
export function HowItWorksSection() {
22
return (
3-
<section id="how" className="py-20">
3+
<section id="how" className="py-12 sm:py-16 md:py-20">
44
<h2 className="text-3xl font-bold tracking-tight text-center mb-4">How It Works</h2>
55
<p className="text-center text-muted-foreground mb-12">
66
A background service watches your files and syncs them to a central git store.

packages/landing/src/components/sections/installation.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ function CodeBlock({ children }: { children: string }) {
2525

2626
export function InstallationSection() {
2727
return (
28-
<section id="install" className="py-20 scroll-mt-10">
28+
<section id="install" className="py-12 sm:py-16 md:py-20 scroll-mt-10">
2929
<h2 className="text-3xl font-bold tracking-tight text-center mb-12">
3030
Installation &amp; Usage
3131
</h2>

packages/landing/src/components/sections/multi-machine.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
export function MultiMachineSection() {
22
return (
3-
<section className="py-20">
3+
<section className="py-12 sm:py-16 md:py-20">
44
<h2 className="text-3xl font-bold tracking-tight text-center mb-4">Work Across Machines</h2>
55
<p className="text-center text-muted-foreground mb-12 max-w-2xl mx-auto">
66
Your store is just a Git repo. Push it to GitHub (private) and pull it on another machine.

packages/landing/src/components/sections/why.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ export function WhySection() {
4545
];
4646

4747
return (
48-
<section id="why" className="py-20 animate-fade-up delay-200">
48+
<section id="why" className="py-12 sm:py-16 md:py-20 animate-fade-up delay-200">
4949
<h2 className="text-3xl font-bold tracking-tight text-center mb-12">Why AI Sync?</h2>
5050
<div className="grid grid-cols-1 md:grid-cols-3 gap-4">
5151
{cards.map((card) => (

packages/server/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@ai-sync/server",
33
"author": "Anh-Thi Dinh",
4-
"version": "0.2.1",
4+
"version": "0.2.2",
55
"repository": "https://github.com/anhthiding/ai-sync",
66
"private": true,
77
"license": "MIT",

0 commit comments

Comments
 (0)