Skip to content

fix(gendoc): log skipped assemblies in FailureBehavior.Continue#17

Open
Reefact wants to merge 1 commit into
mainfrom
claude/failure-behavior-continue-logging-tiqnqo
Open

fix(gendoc): log skipped assemblies in FailureBehavior.Continue#17
Reefact wants to merge 1 commit into
mainfrom
claude/failure-behavior-continue-logging-tiqnqo

Conversation

@Reefact

@Reefact Reefact commented Jul 5, 2026

Copy link
Copy Markdown
Owner

Problème (B3)

HandleFailure faisait un simple return sans rien logger en mode FailureBehavior.Continue (le comportement du CLI hors --strict) :

if (options.FailureBehavior == FailureBehavior.Continue) { return; }

Résultat : des assemblies étaient sautées sans aucune trace pour tous les appels à HandleFailure :

  • « Target assembly not found »
  • exception de résolution de TargetPath
  • « Assembly not found » dans GetErrorDocumentationFromAssemblies
  • « worker produced no output »
  • « unreadable output »
  • « Failed to run the documentation worker »

Seul le stderr du worker restait visible (via RunProcess), donc un crash du worker restait diagnosticable, mais tout le reste était silencieux.

Correctif

En mode Continue, on logge désormais systématiquement en Warning avant de continuer, en incluant le détail de l'exception quand elle existe :

if (options.FailureBehavior == FailureBehavior.Continue) {
    options.Logger.Warning(ex is not null ? $"{message} {ex}" : message);
    return;
}

Warning (et non Error) car en Continue la dégradation est volontaire et non fatale — mais désormais tracée. Le chemin Stop (throw de SolutionDocumentationGenerationException) reste inchangé.

Tests

Ajout de ASkippedAssemblyIsLoggedWhenContinuing, qui utilise un IGenerationLogger capturant et vérifie qu'une assembly manquante émet bien un warning mentionnant le fichier.

⚠️ Le SDK dotnet n'étant pas disponible dans l'environnement d'exécution, les tests n'ont pas pu être lancés ici — à confirmer via la CI. Le changement a été vérifié par relecture.

🤖 Generated with Claude Code


Generated by Claude Code

HandleFailure returned without any trace in Continue mode (the CLI default
outside --strict), so target-not-found, worker-produced-no-output,
unreadable-output, TargetPath resolution failures and missing assemblies
dropped assemblies silently. Emit a Warning (with the exception detail when
present) before continuing so every skipped assembly leaves a diagnosable
trace.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MUSHBAhJ5R2PFp9HismMZs
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.

2 participants