Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
c9e01e1
Rebase on upstream hourly, add AI/LLM PR review
gburd Mar 10, 2026
0365a25
ci: AI PR review — Open Code Review + Agora MCP history
gburd Jun 6, 2026
c7e7712
ci: bump pg-history Bedrock read timeout past botocore's 60s default
gburd Jul 4, 2026
9b02a0b
Add sparsemap data structure for compact bit-indexed sparse arrays
gburd May 14, 2026
9bed8ee
Add skiplist data structure for ordered key-value storage
gburd May 14, 2026
a32cf34
Add left-right lock (LRLock), a wait-free read lock primitive
gburd May 28, 2026
ac89c60
UNDO: add table-AM capability flags for cluster-wide UNDO
gburd Jun 23, 2026
34bc2fc
UNDO: add cluster-wide UNDO-in-WAL engine with per-relation UNDO fork
gburd Jun 23, 2026
d4f46ea
UNDO: add nbtree and hash index UNDO apply handlers
gburd Jun 23, 2026
b7071e9
port: add pg_xattr extended-attribute portability wrapper
gburd Jun 23, 2026
62e4296
FILEOPS: add transactional filesystem-ops WAL resource manager
gburd Jun 23, 2026
93750aa
FILEOPS: add transactional rollback (UNDO) handlers
gburd Jun 23, 2026
e4ea24b
FILEOPS: wire transactional ops into callers, docs, and tests
gburd Jun 23, 2026
105ac78
RECNO: add in-place MVCC table access method with HLC visibility
gburd Jun 22, 2026
61f8e7f
RECNO: stamp version pointer on committed in-place UPDATE (WS-PVS1)
gburd Jun 30, 2026
53be68d
[DO NOT MERGE] Benchmarks: RECNO and UNDO performance test suite
gburd May 18, 2026
185cd59
RECNO: fix AB-BA lock inversion in VACUUM cross-page defrag
gburd Jul 3, 2026
3cc01be
RECNO: route CAS fast-path UPDATE through LOCKTAG_TUPLE FIFO
gburd Jul 4, 2026
2a034be
RELUNDO: remove unsound lock-free reserve tier
gburd Jul 6, 2026
592e376
RECNO: re-run committed-update gate after writer wait (slow path)
gburd Jul 6, 2026
4929946
RECNO: fold CAS UPDATE undo into one combined WAL record
gburd Jul 6, 2026
01de2f2
RELUNDO: stripe per-relation UNDO append across 8 head/tail chains
gburd Jul 6, 2026
50e7093
RECNO: always define USE_RECNO in the meson build
gburd Jul 6, 2026
cf18a77
RECNO: use portable pg_attribute_aligned for sparsemap struct (MSVC b…
gburd Jul 6, 2026
c41bc86
RECNO: restore test_plan_advice schedule to parallel_schedule
gburd Jul 6, 2026
edd47ed
RECNO: add relundo_recovery.o and slog_flathash.o to autoconf Makefile
gburd Jul 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
18 changes: 18 additions & 0 deletions .github/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Node modules
scripts/ai-review/node_modules/
# Note: package-lock.json should be committed for reproducible CI/CD builds

# Logs
scripts/ai-review/cost-log-*.json
scripts/ai-review/*.log

# OS files
.DS_Store
Thumbs.db

# Editor files
*.swp
*.swo
*~
.vscode/
.idea/
163 changes: 163 additions & 0 deletions .github/DEV_SETUP_FIX.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,163 @@
# Dev Setup Commit Fix - Summary

**Date:** 2026-03-10
**Issue:** Sync workflow was failing because "dev setup" commits were detected as pristine master violations

## Problem

The sync workflow was rejecting the "dev setup v19" commit (e5aa2da496c) because it modifies files outside `.github/`. The original logic only allowed `.github/`-only commits, but didn't account for personal development environment commits.

## Solution

Updated sync workflows to recognize commits with messages starting with "dev setup" (case-insensitive) as allowed on master, in addition to `.github/`-only commits.

## Changes Made

### 1. Updated Sync Workflows

**Files modified:**
- `.github/workflows/sync-upstream.yml` (automatic hourly sync)
- `.github/workflows/sync-upstream-manual.yml` (manual sync)

**New logic:**
```bash
# Check for "dev setup" commits
DEV_SETUP_COMMITS=$(git log --format=%s upstream/master..origin/master | grep -i "^dev setup" | wc -l)

# Allow merge if:
# - Only .github/ changes, OR
# - Has "dev setup" commits
if [ "$COMMITS_AHEAD" -gt 0 ] && [ "$NON_GITHUB_CHANGES" -gt 0 ]; then
if [ "$DEV_SETUP_COMMITS" -eq 0 ]; then
# FAIL: Code changes outside .github/ that aren't dev setup
exit 1
else
# OK: Dev setup commits are allowed
continue merge
fi
fi
```

### 2. Created Policy Documentation

**New file:** `.github/docs/pristine-master-policy.md`

Documents the "mostly pristine" master policy:
- ✅ `.github/` commits allowed (CI/CD configuration)
- ✅ "dev setup ..." commits allowed (personal development environment)
- ❌ Code changes not allowed (must use feature branches)

## Current Commit Order

```
master:
1. 9a2b895daa0 - Complete Phase 3: Windows builds + fix sync (newest)
2. 1e6379300f8 - Add CI/CD automation: hourly sync, Bedrock AI review
3. e5aa2da496c - dev setup v19
4. 03facc1211b - upstream commits... (oldest)
```

**All three local commits will now be preserved during sync:**
- Commit 1: Modifies `.github/` ✅
- Commit 2: Modifies `.github/` ✅
- Commit 3: Named "dev setup v19" ✅

## Testing

After committing these changes, the next hourly sync should:
1. Detect 3 commits ahead of upstream (including the fix commit)
2. Recognize that they're all allowed (`.github/` or "dev setup")
3. Successfully merge upstream changes
4. Create merge commit preserving all local commits

**Verify manually:**
```bash
# Trigger manual sync
# Actions → "Sync from Upstream (Manual)" → Run workflow

# Check logs for:
# "✓ Found 1 'dev setup' commit(s) - will merge"
# "✓ Successfully merged upstream with local configuration"
```

## Future Updates

When updating your development environment:

```bash
# Make changes
git add .clangd flake.nix .vscode/ .idea/

# IMPORTANT: Start commit message with "dev setup"
git commit -m "dev setup v20: Update IDE and LSP configuration"

git push origin master
```

The sync will recognize this and preserve it during merges.

**Naming patterns recognized:**
- `dev setup v20` ✅
- `Dev setup: Update tools` ✅
- `DEV SETUP - New config` ✅
- `development environment changes` ❌ (doesn't start with "dev setup")

## Benefits

1. **No manual sync resolution needed** for dev environment updates
2. **Simpler workflow** - dev setup stays on master where it's convenient
3. **Clear policy** - documented what's allowed vs what requires feature branches
4. **Automatic detection** - sync workflow handles it all automatically

## What to Commit

```bash
git add .github/workflows/sync-upstream.yml
git add .github/workflows/sync-upstream-manual.yml
git add .github/docs/pristine-master-policy.md
git add .github/DEV_SETUP_FIX.md

git commit -m "Fix sync to allow 'dev setup' commits on master

The sync workflow was failing because the 'dev setup v19' commit
modifies files outside .github/. Updated workflows to recognize
commits with messages starting with 'dev setup' as allowed on master.

Changes:
- Detect 'dev setup' commits by message pattern
- Allow merge if commits are .github/ OR dev setup
- Update merge messages to reflect preserved changes
- Document pristine master policy

This allows personal development environment commits (IDE configs,
debugging tools, shell aliases, etc.) on master without violating
the pristine mirror policy.

See .github/docs/pristine-master-policy.md for details"

git push origin master
```

## Next Sync Expected Behavior

```
Before:
Upstream: A---B---C---D (latest upstream)
Master: A---B---C---X---Y---Z (X=CI/CD, Y=CI/CD, Z=dev setup)

Status: 3 commits ahead, 1 commit behind

After:
Master: A---B---C---X---Y---Z---M
\ /
D-------/

Where M = Merge commit preserving all local changes
```

All three local commits (CI/CD + dev setup) preserved! ✅

---

**Status:** Ready to commit and test
**Documentation:** See `.github/docs/pristine-master-policy.md`
Loading
Loading