Repository navigation
feat(cli): iMe Core conclusion, TUI banner, and output cleanup - #2
Merged
Merged
Conversation
Adds the startup banner (logo + version + accent color) and per-category progress TUI from the new _branding module, gated by --quiet. Replaces the post-run email-signup prompt with a styled iMe Core conclusion block and removes the noisy Run-manifest and Inconclusive lines from stdout. Adds an "Access your Full Report here:" header before the report paths and inlines the below-minimum annotation next to Overall Score so the warning lives with the score it describes. Restyles the insufficient-evidence summary to "X out of Y tests have failed" wording for end-user clarity.
When --test was run with a fixture passed as an absolute path, the single-test path in execute_tests stored the raw path string in TestRunResult.fixture_name. save_reports then lower-cased it and used it verbatim as part of the output filename, producing nested non-existent directories like ifixai-results/ifixai-openrouter-/users/.../fixture.yaml.json and crashing on write. Use the loaded fixture's metadata.name instead — matching what the strategic and full paths in runner.py already do. Add a defensive _slugify helper in reports.py so any future caller passing a path can't produce traversing filenames.
n-papaioannou
requested review from
Sebabaian,
dimneo and
stefyi-4355
as code owners
April 28, 2026 07:26
Ruff F401 surfaced this on the diagnostic CI matrix; the symbol is imported from _branding but never referenced in the module. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
n-papaioannou
added a commit
that referenced
this pull request
Apr 28, 2026
This reverts commit 12e5eef. Reason: Sebastian's iMe Core CLI feature (PR #2 on the public repo) landed this morning and we want it preserved in the public release. Restoring _branding.py, _imecore_prompt.py, the --quiet flag, and the banner/conclusion calls in cli/run.py. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
n-papaioannou
added a commit
that referenced
this pull request
Apr 28, 2026
* sync: per-test layout restructure and public sanitization pass Squashes 13 commits from diagnostic-dev/main into a single PR for the public diagnostic repo. Highlights: - refactor: per-test folder layout (rename ifixai/tests/ -> ifixai/inspections/) - refactor: strip iMe runtime branding from public CLI surface - refactor: remove unused MemgraphRuleLoader - chore: remove internal leaks from governance docs and module docstrings - chore: untrack tests/ and scrub references from public-facing surface - docs: README/CONTRIBUTING cleanup, fix stale paths, drop broken inspect CI job - docs: keep info@ime.life as public contact, surface it in README - fix: update import paths in public-side files for restructured layout Source range: ifixai-ai/diagnostic-dev@63f42d1..92cbc1e Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * Revert "refactor: strip iMe runtime branding from public CLI surface" This reverts commit 12e5eef. Reason: Sebastian's iMe Core CLI feature (PR #2 on the public repo) landed this morning and we want it preserved in the public release. Restoring _branding.py, _imecore_prompt.py, the --quiet flag, and the banner/conclusion calls in cli/run.py. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
n-papaioannou
added a commit
that referenced
this pull request
Apr 30, 2026
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
added a commit
that referenced
this pull request
Apr 30, 2026
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.
Sebabaian
pushed a commit
that referenced
this pull request
May 1, 2026
* sync: RAG integrity, concurrency hardening, CLI polish from dev 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. * feat(scorecard): introduce inconclusive status and remove canned remediation * fix(reporting): correct inconclusive predicate, scrub recommendation 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> * feat(reporting): replace footer with iMe Core call-to-action 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> * docs(readme): add license, python, CI, inspections, and good-first-issue badges --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.
Summary
_brandingmodule, gated by--quiet._imecore_prompt), removes the noisy Run-manifest and Inconclusive lines from stdout, and adds an "Access your Full Report here:" header above report paths.