feat: Add Turkish Code Analyzer Agent - #82
Closed
zagiscoming wants to merge 4 commits into
Closed
Conversation
- Analyzes Python code for syntax errors - Checks code quality and best practices - Performs security scanning (SQL injection, eval, exec) - Generates quality score (0-100) - Provides detailed analysis report Features: - Syntax checking with AST parser - Quality analysis (empty functions, long functions, comments) - Security scanning (SQL injection, eval(), exec(), pickle) - Best practices enforcement (type hints, docstrings, exception handling) - Comprehensive test suite Files added: - analyzer.py: Main analyzer module - README.md: Turkish documentation - requirements.txt: Dependencies - test_analyzer.py: Test suite
Meraniya
pushed a commit
to Meraniya/hermes-agent
that referenced
this pull request
Aug 6, 2026
…writes (NousResearch#82) save_config()/restore_config() already keep the local .sha256 sidecar in sync (PR NousResearch#57), but the *external* git-backed baseline used by `hermes config verify` (PR NousResearch#67) was only ever updated by an explicit `hermes config seal`. Any authorized write through save_config() — model scanner, /model command, platform setup flows via write_platform_config_field() — desynced that baseline, so the Config Integrity Watchdog cron job flagged the legitimate change as tampering: "Hermes Config Integrity Failure! The configuration hash does not match the sealed baseline." This is the same scanner/watchdog TOCTOU conflict documented in docs/plans/2026-07-02-scanner-watchdog-conflict-resolution.md, just recurring one layer over in the newer git-backed mechanism. _write_config_to_disk() now also calls the config-integrity-watchdog skill's seal() (quietly) whenever $HERMES_DOTFILES_DIR is configured, keeping the git-backed log current on every authorized write. Extracted _find_core_module() (returns None instead of exiting) so this can opportunistically no-op on machines without the watchdog set up. restore_quick_snapshot() in backup.py gets the same treatment for config.yaml restores from a quick snapshot. Co-authored-by: Test <test@test.com>
sijav
added a commit
to sijav/sijav-agent
that referenced
this pull request
Aug 7, 2026
…regions (rc-loop-setup) [roast 9.6/9.6/9.5] Covers 1280-1285 (moa_config-None decode-and-swap + persist-message guard), 1445-1450 (loop-top iteration-budget gate: grace-reset vs budget-exhausted break + non-quiet warning), 1753-1759 (MoA context injection onto last user message). Mutation-verified by the re-roast: deleting the prompt swap (raw marker reaches the wire), inverting the quiet-guard, and replacing the 1449 warning print each turn a test red; on-wire api_kwargs captured, not spy-traps. Justified '# pragma: no branch' at 1754 (current turn's user row is always present so the reversed walk always breaks). MISS []/MB []. Test premise corroborates NousResearch#82.
sijav
added a commit
to sijav/sijav-agent
that referenced
this pull request
Aug 7, 2026
…ation (NousResearch#82) The `if moa_config:` block lives in the OUTER loop, which re-runs for every tool-call round, and `aggregate_moa_context()` unconditionally fans out to every reference model — it has no output cache (moa_loop's _runtime_cache holds credentials/routes only; the _ref_cache_* output cache belongs to a different class this path never touches). So a 5-round tool turn with 3 reference models fired 15 reference LLM calls instead of 3 — a multiplicative cost and latency blowup on exactly the turns that are already the slowest. Worse for correctness: each re-run aggregated against a transcript that had grown under it, so the aggregator context injected into the request silently changed mid-turn. Now the aggregation is computed on the first iteration that needs it and cached for the rest of the turn, while the cached context is still RE-INJECTED every iteration — api_messages is rebuilt per round, so skipping injection would drop the aggregator context from every request after the first. A None return is normalised to "" so the not-yet-computed sentinel can't be re-triggered by a legitimately empty aggregation. The existing reversed-walk test asserted the old behaviour (agg.call_count == 2); it now pins the fix — exactly ONE aggregation across two iterations, with the context verified on the wire for BOTH requests. 1704 passed, 4 skipped.
sijav
added a commit
to sijav/sijav-agent
that referenced
this pull request
Aug 7, 2026
…list, record coverage-measurement learnings - TODO_BOARD: NousResearch#82 moved to DONE (404c53657); NousResearch#85 severity raised to HIGH/turn-killing with the roast's receipt; NousResearch#86 moved from FEATURES into BUGS; slice-B status corrected (committed, 53 tests); NousResearch#79 unblocked and marked in progress. - WORKLIST: pruned 149 -> 56 lines, dropping the abandoned parallel-worker scaffolding that read as live instruction (worker pool, refill, dead PENDINGs). - New learnings: aggregate coverage must go through scripts/run_tests_parallel.py (AGENTS.md:1368) and REQUIRES --with coverage; a scope-limited coverage number is not the real number; the Stop hook's relative-path bug that silently killed the loop.
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.
feat: Add Turkish Code Analyzer Agent
Autonomous Python code analyzer with security and quality checks.
Features:
Tests: ✅ All passed
Usage:
python3 analyzer.py script.py
No external dependencies - Python 3.8+