Fix feedback: default-branch detection, tests out of the box, self-ignoring .junior/.gitignore - #8
Draft
mishachepi wants to merge 3 commits into
Draft
Fix feedback: default-branch detection, tests out of the box, self-ignoring .junior/.gitignore#8mishachepi wants to merge 3 commits into
mishachepi wants to merge 3 commits into
Conversation
…ates On a master-based repo the hardcoded 'main' default produced three doomed diff attempts, each logged as a warning, before falling back to the working diff. Now the configured target branch is validated first: when it doesn't exist, the repo default branch is resolved via origin/HEAD, falling back to whichever of main/master exists. Failed diff candidates in auto mode log at debug; one info line reports the diff source used. Closes feedback/01-default-branch-detection.md Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Move dev tooling from the 'dev' extra to a PEP 735 dependency group: uv installs it by default, so plain 'uv run pytest -q' works. - Guard optional platform/SDK imports (httpx, openai, gitlab) with pytest.importorskip so a missing extra skips those tests instead of killing the whole collection run — matching the runtime's lazy-import philosophy. - Pin a deterministic terminal env in conftest.py: ambient FORCE_COLOR (common in CI) made rich emit ANSI inside CliRunner captures and broke help-text/table assertions. Closes feedback/02-test-suite-out-of-the-box.md Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Every run writes .junior/output/{ts}.json, which showed up as
'?? .junior/' untracked noise in any repo junior reviews — each host
repo had to gitignore it by hand. On first record write junior now
drops a .junior/.gitignore covering output/ and itself (so the
directory disappears from git status entirely), while runbooks/ and
prompts/ stay trackable. An existing .junior/.gitignore is never
overwritten.
Closes feedback/03-junior-output-gitignore.md
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
mishachepi
force-pushed
the
feedback-fixes
branch
from
July 19, 2026 13:42
ff169d7 to
f4bc759
Compare
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.
Три фикса по репортам из
feedback/(тестирование junior на стороннем репозитории), каждый отдельным коммитом:1.
fix(collect)— определение default branch репозиторияНа
master-репозитории захардкоженный дефолтmainдавал три обречённые попытки диффа с warning'ами. Теперь настроенная target branch валидируется: если её нет, junior резолвит дефолтную ветку репо (origin/HEAD→main/master). Промежуточные кандидаты логируются наdebug, итоговый источник диффа — однойinfo-строкой.2.
fix(tests)— тесты работают на свежем клонеdevв PEP 735[dependency-groups]— uv ставит группу по умолчанию,uv run pytest -qпросто работает;httpx,openai,gitlab) в тестах защищеныimportorskip— отсутствующий extra скипает тесты, а не убивает collection;conftest.pyфиксирует детерминированное терминальное окружение: внешнийFORCE_COLOR(типично для CI) ломал assertions на help-текст.3.
feat(run_record)— self-ignoring.junior/.gitignoreПервый записанный run record кладёт рядом
.junior/.gitignore(output/+ сам файл) —?? .junior/больше не появляется вgit statushost-репозитория.runbooks//prompts/остаются трекаемыми, существующий.gitignoreне перезаписывается.Проверено
uv run pytest -qна чистом venv без extras: 304 passed, 6 skipped (раньше — падение collection);uv run --all-extras pytest -q: 325 passed;uv run ruff check src/ tests/: чисто;docs-site:npm run build— 25 страниц;master-репозитории: вместо трёх warning — одна info-строка о подмене ветки,.junior/не виден вgit status.🤖 Generated with Claude Code