upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
path: root/docs/how-to/production-sync-testing.md
AgeCommit message (Collapse)Author
2026-02-03Merge relay.ngit.dev migration: bug fixes and migration toolingDanConwayDev
This merge includes critical bug fixes and comprehensive migration tooling developed during the relay.ngit.dev migration effort. Bug Fixes: - Fix git protocol error handling to return HTTP 200 with ERR pkt-line - Fix naughty list false positives and DNS failure identification - Fix database query filters in load_existing_events (remove .since()) - Fix OID fetch tracking to distinguish 0 OIDs from successful fetches - Fix purgatory event source tracking for filtered expiry logging - Implement OID retry logic for 'not our ref' errors Migration Tools & Documentation: - Complete 5-phase migration analysis pipeline with orchestration script - Phase 1: Event fetching from source relay - Phase 2: Git sync verification - Phase 3: Categorization and relay comparison - Phase 4: Log extraction (parse failures, purgatory expiry) - Phase 5: Action classification for migration decisions - Comprehensive migration guide with lessons learned - Troubleshooting guide for permission and corruption issues Configuration: - Add NGIT_LOG_LEVEL configuration option - Update git throttle limits to 60/minute - Improve logging throughout for better observability
2026-01-10docs: update production sync testing to require 60 secondsDanConwayDev
The sync system uses a 5-second batch window for discovered repos. Repos discovered late in a 30-second test don't have enough time for the full Layer 2→3→4 cascade: - Layer 1: Discover repo announcements (0-5s) - Layer 2: Send #a, #A, #q filters for repos (5-30s) - Layer 3: Receive issues, patches, PRs (30-60s) - Layer 4: Receive comments on root events (40-60s) Testing confirmed that 60 seconds allows late-discovered repos (gitworkshop, ngit) to complete all layers, while 30 seconds only allows 1 second after Layer 2 filters are sent. Updated all references from 30s to 60s throughout the guide and added explanation of why this duration is necessary.
2026-01-10docs: save both raw and sanitized logs for flexible analysisDanConwayDev
- Update production sync testing workflow to save both sync-raw.log and sync.log - Raw log contains complete untruncated messages (rejection reasons, event data, etc.) - Sanitized log remains for quick scanning and pattern recognition - Add guidance on when to use each log and how to retrieve full details from raw log - Resolves truncated rejection warning issue by making full details accessible
2026-01-09docs: add permission step to fix mode workflowDanConwayDev
Mode 1 (Fix Existing Issues) now requires reviewing the proposed fix and asking for user permission before implementing changes. This ensures users have visibility and control over what code changes are made. Changes: - Added Step 3: Review Proposed Fix and Get Permission - Renumbered subsequent steps (4-7) - Updated both overview and detailed workflow sections - Updated workflow diagram to show review/permission steps
2026-01-09docs: update production sync testing workflow to two-mode processDanConwayDev
- Mode 1: Fix one existing issue, test, commit, report - Mode 2: Discover new issues with minimal documentation - Emphasize stopping after each cycle - Remove detailed investigation requirements - Simplify issue documentation format
2026-01-09docs: track production sync issues in work/active-issues/DanConwayDev
- Update production-sync-testing.md to document issues as individual markdown files in work/active-issues/ instead of polluting the tracked how-to guide - Add issue template and workflow for creating, viewing, and resolving issues - Document active-issues/ purpose in work/README.md - Prevents accidental commits of transient testing issues - Makes issue management cleaner and more focused
2026-01-09Fix production-sync-testing.md guide and sanitize-logs.sh scriptDanConwayDev
- Fix shebang in sanitize-logs.sh from #!/bin/bash to #!/usr/bin/env bash for NixOS compatibility - Update sanitizer defaults from 100/20 to 200/100 chars for better log readability - Fix CLI argument names in guide: --sync-bootstrap-relay -> --sync-bootstrap-relay-url - Fix CLI argument names in guide: --git-path -> --git-data-path These issues were discovered during first-time testing of the production sync testing guide.
2026-01-09docs: add production sync testing guide and log sanitizer scriptDanConwayDev
Add infrastructure for iterative debugging of sync against production data: - scripts/sanitize-logs.sh: Truncates verbose log lines for LLM analysis - docs/how-to/production-sync-testing.md: Step-by-step guide for testing sync against real relays, identifying issues, and improving logging