Repository navigation
Fix CI; mask what leaves the service; an honest demo - #7
Open
arslanvuzmal wants to merge 4 commits into
Open
arslanvuzmal wants to merge 4 commits into
arslanvuzmal wants to merge 4 commits into
Conversation
CI on main has failed since d379eba: tests import the app as `src.…`, but `pip install -e .` treats src/ as a source layout and never makes `src` importable ("ModuleNotFoundError: No module named 'src'"). pytest now adds the repository root. Locally: ruff clean, mypy clean, 52 passed. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Privacy (each found while recording the demo): - The reply step received the raw message: masking only covered the logs, in both the Python engine and the TypeScript server. It now gets the masked text (tests/test_model_input_masked.py). - The handoff summary, the one real model call (OpenAI, when a key is set), sent the last ten messages unmasked. Masked now (tests/test_summary_masked.py). The TypeScript summary, labelled "PII masked", quoted card numbers; masked now. Demo: - The dashboard generated 60 random interactions, latencies, "GPT-4o" token counts and a handoff rate at start-up, plus example tickets and sessions, and regenerated them on reset. Now off unless SEED_SAMPLE_METRICS=true, and then labelled sample data. - The simulated reply step reported "gpt-4o"/"gpt-4o-mini" and invented token counts, and told the customer it had analysed an image "using GPT-4o Vision". It now reports "simulated", 0 tokens, and says it is simulated. - The "Refund > $500" preset never reached the policy: the rule looked for the strings "500", "600" or "1000" and the preset says $650.00. The amount is now read from the message. - Removed fixed "100% routed" and "Sub-second" tags and "immutable" (the ledger is in memory). README: what runs today (simulated reply step, masking scope, mock helpdesk), how to run the demo, and corrected feature rows (no LangChain or Presidio; names are not masked). Co-Authored-By: Claude Opus 5.5 <[email protected]>
The docker-build job could not run: tags built from github.repository contain capitals. Never seen before because lint-test failed first. Co-Authored-By: Claude Opus 5.5 <[email protected]>
…raries) Trivy's 4 HIGH findings (msgpack, urllib3, setuptools) are pip's own vendored copies (pip/_vendor/vendor.txt), in both the venv and the system interpreter. The service never installs at run time. Local Trivy run with the CI settings: exit 0. Co-Authored-By: Claude Opus 5.5 <[email protected]>
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.
CI
d379ebawithModuleNotFoundError: No module named 'src'. pytest now adds the repository root to the path.Privacy fixes
OPENAI_API_KEYis set), and it sent the last ten messages unmasked. They're masked now, and a test intercepts the request to check.Demo honesty
SEED_SAMPLE_METRICS=true, and then labelled "Sample data".simulatedand 0 tokens.README: what runs today, how to run the demo, and corrected feature rows (no LangChain, no Presidio, names are not masked).
Left for the owner: the Python engine also labels its simulated replies as gpt-4o, with fixed token counts and the same "GPT-4o Vision" text. Its tests assert on these, so it's left as it is.
🤖 Generated with Claude Code