Skip to content

feat(ops/security): add Phase 2.3 test + close ops-security-hardening spec#280

Merged
silversurfer562 merged 1 commit into
mainfrom
feat/ops-security-hardening-phase1
May 12, 2026
Merged

feat(ops/security): add Phase 2.3 test + close ops-security-hardening spec#280
silversurfer562 merged 1 commit into
mainfrom
feat/ops-security-hardening-phase1

Conversation

@silversurfer562
Copy link
Copy Markdown
Member

Summary

Closes ops-security-hardening. Phases 1-4 already landed via v6.7.1 (PR #254 + PR #256) — this adds the one missing piece (Phase 2.3 regression guard) and closes the spec docs.

What's new

  • One test added: test_subscriber_queue_does_not_block_fast_subscribers in tests/unit/ops/test_runner.py. Regression guard asserting that one slow subscriber doesn't block fast ones — pairs with the existing test_subscriber_queue_drops_slow_subscriber.

Spec closure

  • All 4 spec files: status draftcomplete (2026-05-12, pending Phase 5 smoke)
  • Phase 1-4 task boxes ticked (17 items)
  • Phase 5-6 remain open (10 items) — Phase 5 is Patrick's manual curl + browser smoke tests
  • Decisions.md gets a closure entry with the 3-PR table

What's left (not blocking merge)

Phase 5 smoke tests are interactive and stay open until Patrick runs them:

# Should return 400
curl -H "Host: evil.com:8766" http://localhost:8766/api/info

# Should return JSON
curl http://localhost:8766/api/info
curl http://127.0.0.1:8766/api/info

# Should print startup warning
attune ops --host 0.0.0.0

# Should accept the trusted host
attune ops --trusted-host my.example.com

Plus a browser-load check that the dashboard still renders normally.

Test plan

  • Phase 2.3 test passes locally
  • Full ops suite (142 tests) passes locally under -n auto
  • CI 12/12 green
  • Patrick runs Phase 5 smoke tests post-merge

🤖 Generated with Claude Code

… spec

Phases 1-4 of docs/specs/ops-security-hardening/ all landed across
v6.7.1 PRs (#254 + #256) earlier today. This adds the one missing
piece — Phase 2.3 regression guard — and closes the spec docs.

CODE
- tests/unit/ops/test_runner.py: add
  test_subscriber_queue_does_not_block_fast_subscribers. Regression
  guard asserting that a slow subscriber doesn't block fast ones —
  _broadcast is a synchronous per-subscriber put_nowait, so QueueFull
  on one subscriber must not affect others. Pairs with the existing
  test_subscriber_queue_drops_slow_subscriber.

SPEC
- All 4 spec files: status draft -> complete (2026-05-12, pending
  Phase 5 smoke). Phase 5 = Patrick's manual curl + browser checks;
  not automatable from a session.
- decisions.md: closure entry with the 3-PR table, satisfied
  resolution criteria, and the "out-of-scope items remain deferred,
  not regressions" note.
- tasks.md: Phase 1-4 boxes ticked. Phase 5-6 remain open (10 items)
  pending manual verification.

Local: tests/unit/ops/ 142 passed in 2.69s (was 141; +1 new test).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@vercel
Copy link
Copy Markdown

vercel Bot commented May 12, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
attune-ai Error Error May 12, 2026 7:59pm
website Ready Ready Preview, Comment May 12, 2026 7:59pm

@github-actions github-actions Bot added documentation Improvements or additions to documentation tests labels May 12, 2026
@github-actions
Copy link
Copy Markdown

🔒 Security Scan Results

Status: PASSED - No blocking issues

Summary

Severity Count Action
🔴 CRITICAL 0 BLOCKS PR
🟡 MEDIUM 0 ⚠️ Review recommended
🔵 LOW 0 ℹ️ Informational

Total Findings: 0



🛠️ Need Help?

If findings are false positives:

  1. Add clarifying comments in code (e.g., # Security Note: Test data only)
  2. Request security review: Add security-review label
  3. Security team will evaluate and add security-approved label if safe

For emergency hotfixes:

  1. Add hotfix label to bypass blocking
  2. Create follow-up ticket to address findings
  3. Security team will review post-deployment

Scanner Accuracy: ~82% (Industry-leading!)

Powered by Attune AI Security Scanner | Documentation

# _broadcast is synchronous put_nowait per subscriber, so a backed-up
# queue triggers QueueFull on that subscriber only — the rest still
# receive the event in the same loop iteration.
import asyncio
@codecov
Copy link
Copy Markdown

codecov Bot commented May 12, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@silversurfer562 silversurfer562 merged commit b4926f8 into main May 12, 2026
35 of 37 checks passed
@silversurfer562 silversurfer562 deleted the feat/ops-security-hardening-phase1 branch May 12, 2026 20:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant