v1.0.0 - #18
Merged
Merged
v1.0.0#18
Conversation
…m, clean the schema - create_lead/update_lead services: creating a lead records a CREATED activity (public submissions included) and editing one records an UPDATED activity naming the changed fields; lead views and the public form go through them, as the service-layer rule requires - note edits and deletes go through update_lead_note/delete_lead_note, which existed but were never called - POST /api/leads/public/ is throttled per client (PUBLIC_LEADS_RATE, default 20/hour) - schema: lead endpoints declared a phantom `pk` path parameter and note endpoints `pk`/`note_pk`; notes and activities lists claimed paginated responses but return arrays; PUT on a note had no summary and shared an operationId. All fixed; CI now runs spectacular with --fail-on-warn - 19 new tests for the lead API: visibility by role, create/edit/delete permissions, activities, filters, search, ordering, pagination, the public form and its rate limit (backend total 99) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018oMHDqDASywmwc7ncmxtCY
- README in the finished-project format: badges, live demo line, backend architecture, frontend highlights, quick start, where it could go - docs/api.md: every endpoint, roles table, status pipeline, timeline, errors, with curl examples - MIT LICENSE, CONTRIBUTING, CHANGELOG (1.0.0), PR and issue templates - CI: a v* tag publishes a multi-arch image to GHCR and a GitHub Release with notes from CHANGELOG; the frontend stage builds natively - Swagger UI and ReDoc served from the pinned sidecar instead of a CDN - Fresh screenshots from seeded demo data; version 1.0.0 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018oMHDqDASywmwc7ncmxtCY
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The final release. Once squash-merged, this PR becomes the
v1.0.0commit onmain. Tagging that commitv1.0.0publishes the container image and the GitHub Release.Backend fixes (found while writing the API reference)
contentno longer raises aKeyError.PUBLIC_LEADS_RATE, default20/hour).spectacular --validate --fail-on-warn.drf-spectacular-sidecar, notcdn.jsdelivr.net/...@latest.Docs and project files
docs/api.md: a full API reference with a roles table, the status pipeline, the activity types, errors and curl examples.docs/DEPLOY.md: adds running the published image, CI and releases, andPUBLIC_LEADS_RATE.Release pipeline
v*tag runs all checks, then:frontend/package.json(nowlead-platform@1.0.0) and pushesghcr.io/code-kasha/lead-platform:v1.0.0and:latestfor amd64 and arm64, with OCI labels and annotations.schema.ymlandSHA256SUMS.Verified locally
flake8, the migrations check, the schema check (validate, fail-on-warn, no diff), 99 pytest tests, the generated-types diff, ESLint, 74 Vitest tests, and the production build all pass.
🤖 Generated with Claude Code
https://claude.ai/code/session_018oMHDqDASywmwc7ncmxtCY
Generated by Claude Code