Fix: corretti caratteri \n letterali nei commenti di triage

- Esempio JSON nel prompt: corretto da \\n a \n (doppio escape ingannava il LLM)
- Aggiunto safety net con printf '%b' su COMMENT e MD_CONTENT dopo jq
- LINK_MD: sostituiti doppi apici con printf per interpretare correttamente i newline
This commit is contained in:
2026-05-31 20:21:59 +02:00
parent adbbaf54a4
commit 55b2e0f545

View File

@@ -94,7 +94,7 @@ runs:
'- "bug": malfunzionamento, errore, crash, anomalia, comportamento inaspettato' \ '- "bug": malfunzionamento, errore, crash, anomalia, comportamento inaspettato' \
'- "richiesta": nuova funzionalità, miglioramento, refactoring, ottimizzazione, o dubbio' \ '- "richiesta": nuova funzionalità, miglioramento, refactoring, ottimizzazione, o dubbio' \
"Rispondi ESCLUSIVAMENTE con un JSON valido su una SINGOLA riga, senza nessun altro testo:" \ "Rispondi ESCLUSIVAMENTE con un JSON valido su una SINGOLA riga, senza nessun altro testo:" \
'{"label":"bug","comment":"**Riassunto**: ...\\n\\n**Gap analisi**: codice mancante...\\n\\n**Domande aperte**:\\n1. ...","md":"# Analisi tecnica\\n\\n## Codice coinvolto\\n..."}' \ '{"label":"bug","comment":"**Riassunto**: ...\n\n**Gap analisi**: codice mancante...\n\n**Domande aperte**:\n1. ...","md":"# Analisi tecnica\n\n## Codice coinvolto\n..."}' \
"Il campo 'comment' deve contenere: riassunto della issue, gap analisi (cosa manca rispetto al codice), domande aperte. Usa \\n per i newline." \ "Il campo 'comment' deve contenere: riassunto della issue, gap analisi (cosa manca rispetto al codice), domande aperte. Usa \\n per i newline." \
"Il campo 'md' deve contenere: analisi tecnica completa in formato markdown, file/moduli coinvolti, ipotesi root cause, proposta di fix. Usa \\n per i newline." \ "Il campo 'md' deve contenere: analisi tecnica completa in formato markdown, file/moduli coinvolti, ipotesi root cause, proposta di fix. Usa \\n per i newline." \
"Titolo" "${{ inputs.issue-title }}" \ "Titolo" "${{ inputs.issue-title }}" \
@@ -117,8 +117,10 @@ runs:
MD_CONTENT="" MD_CONTENT=""
else else
LABEL=$(echo "$JSON" | jq -r '.label // "richiesta"') LABEL=$(echo "$JSON" | jq -r '.label // "richiesta"')
COMMENT=$(echo "$JSON" | jq -r '.comment // "Classificazione automatica."' | sed 's/\\n/\n/g') COMMENT=$(echo "$JSON" | jq -r '.comment // "Classificazione automatica."')
MD_CONTENT=$(echo "$JSON" | jq -r '.md // ""' | sed 's/\\n/\n/g') COMMENT=$(printf '%b' "$COMMENT")
MD_CONTENT=$(echo "$JSON" | jq -r '.md // ""')
MD_CONTENT=$(printf '%b' "$MD_CONTENT")
fi fi
case "$LABEL" in case "$LABEL" in
@@ -163,10 +165,7 @@ runs:
-F "attachment=@${MD_FILE};filename=triage-issue-${ISSUE_NUM}.md" 2>/dev/null) -F "attachment=@${MD_FILE};filename=triage-issue-${ISSUE_NUM}.md" 2>/dev/null)
ASSET_URL=$(echo "$ASSET_RESP" | jq -r '.browser_download_url // empty' 2>/dev/null) ASSET_URL=$(echo "$ASSET_RESP" | jq -r '.browser_download_url // empty' 2>/dev/null)
if [ -n "$ASSET_URL" ] && [ "$ASSET_URL" != "null" ]; then if [ -n "$ASSET_URL" ] && [ "$ASSET_URL" != "null" ]; then
LINK_MD=" printf -v LINK_MD '\n\n---\n📎 **Analisi tecnica completa**: [triage-issue-%s.md](%s)' "$ISSUE_NUM" "$ASSET_URL"
---
📎 **Analisi tecnica completa**: [triage-issue-${ISSUE_NUM}.md](${ASSET_URL})"
echo "Asset MD caricato: $ASSET_URL" echo "Asset MD caricato: $ASSET_URL"
else else
echo "WARN: Impossibile caricare il file MD come asset" echo "WARN: Impossibile caricare il file MD come asset"