Skip to content

Rename "clean" to "dedupe" in the case studies folder#5

Merged
nikosbosse merged 1 commit intomainfrom
rename-clean-dedupe
Jan 15, 2026
Merged

Rename "clean" to "dedupe" in the case studies folder#5
nikosbosse merged 1 commit intomainfrom
rename-clean-dedupe

Conversation

@nikosbosse
Copy link
Contributor

No description provided.

@nikosbosse nikosbosse merged commit e5edf1d into main Jan 15, 2026
@nikosbosse nikosbosse deleted the rename-clean-dedupe branch January 15, 2026 22:41
hnykda pushed a commit that referenced this pull request Jan 22, 2026
RafaelPo added a commit that referenced this pull request Feb 24, 2026
- Make load_refresh_token atomic via GETDEL, re-store on client mismatch
- Rename MAX_CSV_CACHE_BYTES to MAX_CSV_CACHE_CHARS (len() counts chars)
- Expose revocation_ttl as property, stop crossing class boundary
- Use lazy %s logger formatting in app.py startup error
- Add HEALTHCHECK to Dockerfile, remove redundant STOPSIGNAL

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
RafaelPo added a commit that referenced this pull request Feb 24, 2026
* Harden MCP server: auth, CORS, Redis, widgets, and review fixes

Security & auth hardening:
- Auth code expiration defense-in-depth check after deserialization
- Atomic auth code consumption via GETDEL (re-store on client mismatch)
- Revocation TTL derived from token remaining lifetime + 60s buffer
- SameSite=strict on auth state cookies
- Supabase response validation via Pydantic model_validate
- Remove exc_info=True from JWT failure debug log

Infrastructure improvements:
- CORS: restrict origin fallback to localhost (was "*"), add Allow-Headers
- Redis: replace @lru_cache singleton with explicit getter/setter for test safety
- Prefix-sum optimization for page budget clamping (was O(n log n) JSON serialization)
- Exception chaining in UUID validation (raise from exc)
- Add missing esc() XSS helper to session widget
- Add MCP_SERVER_URL to .env.example
- Add .dockerignore, Sentinel support in docker-compose
- Add real Redis integration tests for HTTP result flow
- Rate limiter: handle None client IP, proxy header trust gating

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Fix second-round review findings (#1#5)

- Make load_refresh_token atomic via GETDEL, re-store on client mismatch
- Rename MAX_CSV_CACHE_BYTES to MAX_CSV_CACHE_CHARS (len() counts chars)
- Expose revocation_ttl as property, stop crossing class boundary
- Use lazy %s logger formatting in app.py startup error
- Add HEALTHCHECK to Dockerfile, remove redundant STOPSIGNAL

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Move inline data limits to Settings for configurability

Move MAX_INLINE_ROWS, MAX_INLINE_DATA_BYTES, MAX_SCHEMA_PROPERTIES from
module-level constants in models.py to Settings fields (max_inline_rows,
max_inline_data_bytes, max_schema_properties) so they can be overridden
via environment variables.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Read JWT algorithm from JWKS key, reuse conftest Redis in integration tests

- _decode_jwt reads alg from signing_key._jwk_data instead of hardcoding
  RS256, fixing ES256 verification for Supabase projects using ECDSA
- Falls back to RS256 when _jwk_data is absent (backwards compatible)
- test_http_real.py now uses the shared fake_redis fixture from conftest
  instead of requiring a manually started Redis on port 6379
- Revert SameSite=strict back to lax on auth cookies (strict breaks the
  OAuth callback redirect flow from Supabase)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Add toast confirmation on select all / deselect all

Show "Selected all N rows" or "Selection cleared" toast when clicking
the select-all button, matching the existing toast pattern used by
copy and cell-copy actions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
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