Skip to content

(2/9) Add a deterministic GitHub simulator - #86

Draft
AntonNiklasson wants to merge 1 commit into
an/feedback-loops/1/sync-onlyfrom
an/feedback-loops/2/github-simulator
Draft

AntonNiklasson wants to merge 1 commit into
an/feedback-loops/1/sync-onlyfrom
an/feedback-loops/2/github-simulator

Conversation

@AntonNiklasson

@AntonNiklasson AntonNiklasson commented Nov 13, 2026 •

Copy link
Copy Markdown
Owner

Summary

Add a loopback GitHub boundary with fake credentials and controllable in-flight, queued, failed-queue and outage states. Tests exercise the real sync engine and persistent SQLite snapshots, including restart and recovery.

Validation

Local stack head 1d1d925 passed:

  • pnpm typecheck, pnpm test (171 unit/integration tests)
  • pnpm lint (including four boundary checks), pnpm fmt:check
  • pnpm test:e2e (five Chromium scenarios)
  • pnpm test:desktop (packaged macOS arm64 launch, restart, SQLite and shutdown)

These are local results; GitHub checks are reported separately.

How to review

Read harness/src/github.test.ts first, then github.ts. Unknown routes and queries fail explicitly rather than returning empty success.

Related

Part of #84. Prerequisite: #83.

This PR is part of a stack; review and merge from the bottom upward. Each PR targets the preceding branch.

  1. #85: Use the sync package for all desktop GitHub access
  2. #86: Add a deterministic GitHub simulator ← This PR
  3. #87: Run an isolated interactive status board
  4. #88: Verify renderer polling through the real sync engine
  5. #89: Show persisted sync health and stale-data warnings
  6. #90: Exercise conflict, review, rate-limit and partial-outage states
  7. #91: Guard clients against bypassing the public sync API
  8. #92: Attach named visual states to browser reports
  9. #93: Launch and restart the packaged Electron app in isolation

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant