Skip to content

sync: RAG integrity, concurrency hardening, CLI polish from dev - #7

Merged
Sebabaian merged 5 commits into
mainfrom
sync/main-2026-05-01
May 1, 2026
Merged

Sebabaian merged 5 commits into
mainfrom
sync/main-2026-05-01

Conversation

@n-papaioannou

@n-papaioannou n-papaioannou commented Apr 30, 2026 •

Copy link
Copy Markdown
Contributor
  • B28 rewritten as RAG injection-resistance test with typed cases
  • Judge moved SUT response into a delimited user message
  • Lazy-init rubric cache lock
  • Gradual ramp-up after 429 instead of thundering herd
  • Category summary no longer shows "✓ all passed" for zero scored tests
  • Public docs scrub

Single squashed sync from ifixai-ai/diagnostic-dev to keep the public
release tree current with internal development.

Highlights
- RAG context integrity: B28 inspection rewritten to test prompt-injection
  resistance through retrieved context, with structural typed cases.
- Judge prompt isolation: SUT response moved out of the system prompt into
  a delimited user message to mitigate self-judging the response.
- Rubric cache: lazy-init the asyncio lock so multi-loop test runs don't
  collide.
- Concurrency governor: ramp waiters back up gradually after a 429 instead
  of releasing all parked coroutines in a thundering herd.
- Category summary: stop rendering "✓ all passed" when zero tests were
  scored; show "— no scored tests" instead.
- CLI polish: per-test folder layout, benchmark progress display, run
  summary terminology, PowerShell rendering fix.
- Restore iMe Core branding modules (_branding.py, _imecore_prompt.py)
  and rewire run.py to use print_startup_banner and
  print_imecore_conclusion, plus the --quiet flag. Public-side intent
  from PR #2 preserved.
- Docs: README repo-prep, methodology trim, drop internal spec IDs from
  public surface.

Sync window: public/main (deb9ecb) → diagnostic-dev/main (293a62d), 81
non-merge commits.
n-papaioannou and others added 4 commits May 1, 2026 14:00
…surfaces, fix footer

- _print_inconclusive_summary now predicates on TestStatus.INCONCLUSIVE
  per test rather than EvaluationMethod.JUDGE per evidence item. The
  prior predicate counted every judge-scored evidence item including
  passes, leading to a misleading "N evidence items" message.
- Lazy-init of _rubric_cache_lock in analytic_judge moved to module
  scope, removing a TOCTOU window where two coroutines could each see
  None and create independent locks. asyncio.Lock() at module scope is
  loop-agnostic on Python >=3.10 (the project minimum).
- Drop remaining recommendation/remediation surfaces from the report:
    * GRADE_INTERPRETATIONS verdict prose blockquote
    * Gap Analysis section (current/required/deficit/priority blocks)
    * Per-framework "Gap Details" subsections (NOT RUN coverage map)
    * JSON gaps[] and grade_interpretation fields
- Footer now distinguishes package version from methodology spec
  version (was rendering spec version as if it were software version).
- Category bar palette: orange/yellow/green/blue/pink.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Replaces the version footer with the iMe Core marketing copy used
across the public surface. Drops the now-unused VERSION import.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@Sebabaian
Sebabaian merged commit bebd35b into main May 1, 2026
6 checks passed
@Sebabaian
Sebabaian deleted the sync/main-2026-05-01 branch May 1, 2026 13:34
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