Skip to content

feat: bootstrap package structure, exceptions, and store interface - #2

Merged
koydas merged 9 commits into
mainfrom
claude/bootstrap-package-exceptions-store-tes4me
Jun 9, 2026
Merged

feat: bootstrap package structure, exceptions, and store interface#2
koydas merged 9 commits into
mainfrom
claude/bootstrap-package-exceptions-store-tes4me

Conversation

@koydas

@koydas koydas commented Jun 9, 2026

Copy link
Copy Markdown
Owner
  • Add pyproject.toml with hatchling build backend, Python 3.11+ constraint,
    and runtime/dev deps (fastapi, httpx, pytest, ruff, black)
  • Add SyncError base and three domain exceptions (WebhookSignatureError,
    DuplicateEventError, ReconciliationError) in exceptions.py
  • Add abstract SyncStore in store/base.py covering last_sync_at tracking,
    idempotency checks, and the webhook queue interface
  • Add InMemoryStore in store/memory.py for use in tests only

https://claude.ai/code/session_01Q344Pi4fXu3Z5BncPAjvM6

- Add pyproject.toml with hatchling build backend, Python 3.11+ constraint,
  and runtime/dev deps (fastapi, httpx, pytest, ruff, black)
- Add SyncError base and three domain exceptions (WebhookSignatureError,
  DuplicateEventError, ReconciliationError) in exceptions.py
- Add abstract SyncStore in store/base.py covering last_sync_at tracking,
  idempotency checks, and the webhook queue interface
- Add InMemoryStore in store/memory.py for use in tests only

https://claude.ai/code/session_01Q344Pi4fXu3Z5BncPAjvM6

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1c02199a69

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/sync_engine/store/memory.py Outdated
Callers need the event_id to call mark_event_processed after committing
the payload. Returning only the payload made acknowledgment impossible for
webhooks whose payload does not redundantly embed the event_id.

https://claude.ai/code/session_01Q344Pi4fXu3Z5BncPAjvM6

koydas commented Jun 9, 2026

Copy link
Copy Markdown
Owner Author

@codex review


Generated by Claude Code

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 04e2ea2431

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread pyproject.toml
pytest, ruff, and black are not runtime deps — pulling them into
production installs is unnecessary. Consumers install with
pip install -e .[dev] for local development.

https://claude.ai/code/session_01Q344Pi4fXu3Z5BncPAjvM6

koydas commented Jun 9, 2026

Copy link
Copy Markdown
Owner Author

@codex review


Generated by Claude Code

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Breezy!

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

claude added 4 commits June 9, 2026 02:58
…ion process

ADR-002 captures the decision to define SyncStore as a Python ABC rather
than coupling engine components to a concrete backend. Also adds a "when
to write a new ADR" section and an ADR index to CLAUDE.md.

https://claude.ai/code/session_01Q344Pi4fXu3Z5BncPAjvM6
- 15 tests covering exception hierarchy and all InMemoryStore behaviors
- pytest configured with testpaths and pythonpath = ["src"] for src layout
- CI runs lint (ruff + black) and test jobs on every push and PR

https://claude.ai/code/session_01Q344Pi4fXu3Z5BncPAjvM6
@koydas

koydas commented Jun 9, 2026

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. More of your lovely PRs please.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

docs/testing.md covers layout, naming, fixtures, mocking patterns for
webhooks and REST, and a table of required scenarios per module.
CLAUDE.md now states explicitly that a feature without tests is not done
and links to the guide.

https://claude.ai/code/session_01Q344Pi4fXu3Z5BncPAjvM6
@koydas
koydas merged commit ac2b6a5 into main Jun 9, 2026
4 checks passed
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.

2 participants