Skip to content

715 716 717 718 observability safety slo (conflict resolved) - #802

Merged
hman38705 merged 6 commits into
mainfrom
715-716-717-718-observability-safety-slo
May 28, 2026
Merged

715 716 717 718 observability safety slo (conflict resolved)#802
hman38705 merged 6 commits into
mainfrom
715-716-717-718-observability-safety-slo

Conversation

@hman38705

Copy link
Copy Markdown
Contributor

Resolves CHANGELOG.md merge conflict from PR #792.

semantic-release-bot and others added 6 commits May 28, 2026 13:16
# [1.1.0](Hexstar-labs/predictIQ@v1.0.0...v1.1.0) (2026-05-28)

### Bug Fixes

* **#452:** remove double newsletter rate limiting, make policy configurable ([6169065](Hexstar-labs@6169065)), closes [#452](https://github.com/Hexstar-labs/predictIQ/issues/452) [#452](https://github.com/Hexstar-labs/predictIQ/issues/452)
* **#453:** Redis-backed newsletter IP rate limiter with atomic counters ([932a14d](Hexstar-labs@932a14d)), closes [#453](https://github.com/Hexstar-labs/predictIQ/issues/453)
* **#454:** harden client IP extraction with trusted proxy CIDRs ([04db648](Hexstar-labs@04db648)), closes [#454](https://github.com/Hexstar-labs/predictIQ/issues/454)
* **#463:** add TTL and max-size eviction to watched_txs ([428b7a7](Hexstar-labs@428b7a7)), closes [#463](https://github.com/Hexstar-labs/predictIQ/issues/463)
* **#485-#488:** sync API_SPEC, add email DLQ, validate templates at startup ([0749bc5](Hexstar-labs@0749bc5)), closes [#485](https://github.com/Hexstar-labs/predictIQ/issues/485) [-#488](https://github.com/-/issues/488) [#485](https://github.com/Hexstar-labs/predictIQ/issues/485) [#486](https://github.com/Hexstar-labs/predictIQ/issues/486) [#487](https://github.com/Hexstar-labs/predictIQ/issues/487) [#488](https://github.com/Hexstar-labs/predictIQ/issues/488)
* **#624:** fetch_pyth_price calls on-chain Pyth contract via oracle_address/feed_id ([eb3079f](Hexstar-labs@eb3079f)), closes [#624](https://github.com/Hexstar-labs/predictIQ/issues/624)
* **#625:** determine_outcome uses per-market strike_price from OracleConfig ([901f800](Hexstar-labs@901f800)), closes [#625](https://github.com/Hexstar-labs/predictIQ/issues/625)
* **#626:** validate_oracle_staleness checks all oracle indices ([bc53975](Hexstar-labs@bc53975)), closes [#626](https://github.com/Hexstar-labs/predictIQ/issues/626)
* **#627:** align DISPUTE_WINDOW_SECONDS to 72h (259200) ([4f26453](Hexstar-labs@4f26453)), closes [#627](https://github.com/Hexstar-labs/predictIQ/issues/627)
* **api:** stop leaking internal error details to API consumers ([#628](https://github.com/Hexstar-labs/predictIQ/issues/628)) ([e3d8cd9](Hexstar-labs@e3d8cd9))
* contract query optimizations and docs fixes ([#481](https://github.com/Hexstar-labs/predictIQ/issues/481)-484) ([2a0d193](Hexstar-labs@2a0d193)), closes [#481-484](https://github.com/Hexstar-labs/predictIQ/issues/481-484)
* Enforce SendGrid webhook signature validation ([d49109a](Hexstar-labs@d49109a)), closes [#24](https://github.com/Hexstar-labs/predictIQ/issues/24)
* log cache warming errors and cover all critical endpoints ([bf978d5](Hexstar-labs@bf978d5)), closes [#493](https://github.com/Hexstar-labs/predictIQ/issues/493)
* replace single-connection SCAN loop with per-batch connection acquisition ([#458](https://github.com/Hexstar-labs/predictIQ/issues/458)) ([2cfdec4](Hexstar-labs@2cfdec4))
* resolve compile errors from issues [#477](https://github.com/Hexstar-labs/predictIQ/issues/477)-[#480](https://github.com/Hexstar-labs/predictIQ/issues/480) ([81235ac](Hexstar-labs@81235ac)), closes [#478](https://github.com/Hexstar-labs/predictIQ/issues/478)
* stop swallowing blockchain RPC errors into silent defaults ([#460](https://github.com/Hexstar-labs/predictIQ/issues/460)) ([fc0ec9c](Hexstar-labs@fc0ec9c))
* structured API errors, webhook sig verification, OpenAPI sync ([2430bfe](Hexstar-labs@2430bfe))

### Features

* **#519:** Enhance accessibility compliance with improved ARIA labels and keyboard navigation ([174c41a](Hexstar-labs@174c41a)), closes [#519](https://github.com/Hexstar-labs/predictIQ/issues/519)
* **#520:** Add frontend error boundary components ([6deea3f](Hexstar-labs@6deea3f)), closes [#520](https://github.com/Hexstar-labs/predictIQ/issues/520)
* **#521:** Implement frontend route-based code splitting ([e4166bc](Hexstar-labs@e4166bc)), closes [#521](https://github.com/Hexstar-labs/predictIQ/issues/521)
* **#522:** Add frontend environment variable validation ([b6dc301](Hexstar-labs@b6dc301)), closes [#522](https://github.com/Hexstar-labs/predictIQ/issues/522)
* **#523:** Implement frontend API response caching ([4daf584](Hexstar-labs@4daf584)), closes [#523](https://github.com/Hexstar-labs/predictIQ/issues/523)
* **#524:** Add frontend internationalization support ([266a5e3](Hexstar-labs@266a5e3)), closes [#524](https://github.com/Hexstar-labs/predictIQ/issues/524)
* **#525:** Implement frontend dark mode support ([e171d57](Hexstar-labs@e171d57)), closes [#525](https://github.com/Hexstar-labs/predictIQ/issues/525)
* **#526:** Add k6 load test for newsletter subscribe endpoint ([b31196d](Hexstar-labs@b31196d)), closes [#526](https://github.com/Hexstar-labs/predictIQ/issues/526)
* add cache stampede protection (Issue [#47](https://github.com/Hexstar-labs/predictIQ/issues/047)) ([4fff7e7](Hexstar-labs@4fff7e7))
* add configurable database query timeout ([#49](https://github.com/Hexstar-labs/predictIQ/issues/049)) ([522e0f0](Hexstar-labs@522e0f0))
* add Dependabot configuration for automated security updates ([34ed35e](Hexstar-labs@34ed35e))
* add E2E tests for market creation flow with CI and flaky detection ([8778933](Hexstar-labs@8778933))
* add idempotency key support for email sends (Issue [#45](https://github.com/Hexstar-labs/predictIQ/issues/045)) ([54dde3f](Hexstar-labs@54dde3f))
* **api:** add database connection health check ([#495](https://github.com/Hexstar-labs/predictIQ/issues/495)) ([e012013](Hexstar-labs@e012013))
* **frontend:** add form validation with accessible user feedback ([#73](https://github.com/Hexstar-labs/predictIQ/issues/073)) ([f376168](Hexstar-labs@f376168))
* implement cache TTL per key type (Issue [#46](https://github.com/Hexstar-labs/predictIQ/issues/046)) ([8f2bbb1](Hexstar-labs@8f2bbb1))
* implement database migration version tracking ([281e2a2](Hexstar-labs@281e2a2)), closes [#496](https://github.com/Hexstar-labs/predictIQ/issues/496)
* implement graceful shutdown for background workers ([0ef02d4](Hexstar-labs@0ef02d4))
* implement issues [#513](https://github.com/Hexstar-labs/predictIQ/issues/513) [#514](https://github.com/Hexstar-labs/predictIQ/issues/514) [#515](https://github.com/Hexstar-labs/predictIQ/issues/515) [#516](https://github.com/Hexstar-labs/predictIQ/issues/516) ([f8cdec2](Hexstar-labs@f8cdec2))
* implement real market resolve write flow ([#457](https://github.com/Hexstar-labs/predictIQ/issues/457)) ([ca9de29](Hexstar-labs@ca9de29))
* introduce targeted cache invalidation tags ([#459](https://github.com/Hexstar-labs/predictIQ/issues/459)) ([e2924e3](Hexstar-labs@e2924e3))
* newsletter-security-issues ([59e2a2d](Hexstar-labs@59e2a2d))
* protect /metrics endpoint with auth and IP allowlist ([044ef94](Hexstar-labs@044ef94)), closes [#456](https://github.com/Hexstar-labs/predictIQ/issues/456)
* Redis pooling, circuit breaker, retry, correlation IDs, OTel tracing ([cab2ffb](Hexstar-labs@cab2ffb))
* sanitize email recipients before SendGrid call (Issue [#44](https://github.com/Hexstar-labs/predictIQ/issues/044)) ([13ff88a](Hexstar-labs@13ff88a))
* wire and globalise admin security & validation middleware ([#446](https://github.com/Hexstar-labs/predictIQ/issues/446) [#447](https://github.com/Hexstar-labs/predictIQ/issues/447) [#448](https://github.com/Hexstar-labs/predictIQ/issues/448) [#449](https://github.com/Hexstar-labs/predictIQ/issues/449)) ([38ad7b3](Hexstar-labs@38ad7b3))
- Add prometheus-slo-rules.test.yml with unit tests for SLO recording and alerting rules
- Add prometheus-rules-test job to CI pipeline
- Check syntax of prometheus-slo-rules.yml and alerts.yaml
- Run promtool unit tests for critical alerting rules
- Fail CI on rule syntax errors
- Add runbook_url to all alert rules in alerts.yaml
- Create comprehensive runbooks in docs/runbooks/ for:
  - API performance (response time, error rate, throughput)
  - Cache performance (hit rate)
  - Database performance (query latency, connection pool)
  - Contract performance (gas costs)
  - System health (service down, memory, CPU)
  - Performance regression detection
- Each runbook includes: alert meaning, impact, investigation steps, remediation
- Add check-slo-compliance.js script to query Prometheus for SLO metrics
- Script checks error budget remaining for all SLOs
- Blocks production deployment if error budget exhausted (< 0%)
- Supports CONFIRM_SLO_OVERRIDE=yes for emergency deploys with approval
- Integrated into deploy workflow for production environment
- Provides clear feedback on SLO status and error budget
- Add deploy-testnet target with confirmation prompt
- Add deploy-mainnet target with additional CONFIRM_MAINNET=yes requirement
- Separate testnet and mainnet deployment targets for safety
- Testnet requires single confirmation: 'Are you sure? [y/N]'
- Mainnet requires both confirmation prompt AND CONFIRM_MAINNET=yes env var
- Prevents accidental mainnet deployments
- Builds optimized contract before deployment
@hman38705
hman38705 merged commit b5b0fec into main May 28, 2026
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.

3 participants