feat: structured logging via nova_jsonlogger tier1 + claude-try auto-request#10
Merged
Merged
Conversation
…request Three changes that go together: 1. Revert the io:format debug code in triagebot_webhook_controller back to structured ?LOG_ERROR / ?LOG_WARNING / ?LOG_INFO calls. The io:format escape hatch was added in v0.1.7 to debug the webhook secret mismatch when nova_jsonlogger was silently dropping the diagnostic maps - that root cause is now fixed upstream. 2. Pin nova to Taure/nova feat/jsonlogger-tier1 (the open PR novaframework/nova#385). The tier1 jsonlogger does structured error extraction from class/reason/stacktrace meta and applies term-size caps, so the stacktrace field that previously broke the formatter is now rendered safely. TODO comment in rebar.config to swap to a tag once the upstream PR lands. 3. Opt the prod config into the ECS schema with term and string caps (8192 bytes), plus drop logger_level back from debug to info now that the active debug round is over. 4. When triagebot's label_proposer asks for the claude-try label, post a follow-up @claude implement... comment so the claude-code-action workflow in the target repo picks it up without the maintainer needing to apply the label manually. The action listens on issues.labeled too, but an explicit @claude mention also makes the chain visible in the issue thread.
🔴 Code Coverage — 14.5%31 of 214 lines covered. ✅ ELP LintNo diagnostics. |
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.
Summary
Combines three small but related changes since they all touch the logging or post-triage chain:
1. Revert
io:formatdebug → structured?LOG_*triagebot_webhook_controllerreverts the temporaryio:formatescape hatch (added in v0.1.7 to debug the webhook-secret mismatch whennova_jsonloggersilently dropped the diagnostic maps) back to structured?LOG_ERROR/?LOG_WARNING/?LOG_INFOcalls. The root cause is now fixed upstream — see #2.2. Pin nova to the jsonlogger tier1 PR fork
Nova dep moves to
Taure/novaat branchfeat/jsonlogger-tier1(the head of novaframework/nova#385). The tier1 jsonlogger:class/reason/stacktracemeta into a structurederrorobject per schemamax_term_sizeandmax_string_lengthcaps so a gnarly stacktrace can't blow the log lineecs)rebar.configcarries a TODO to swap back to a tag once the upstream PR lands and a release is cut.3. ECS schema + caps in
prod_sys.config.srcOpts into the tier1 features:
Also drops
logger_levelfromdebugback toinfonow that the debugging round is over.4. Auto-request
@claude implementwhenclaude-tryis appliedIn
triagebot_runner, afterapply_labelssucceeds, ifclaude-tryis in the proposed label set, post a follow-up@claude please implement this issue per the triage above. Open a PR closing this issue when done.comment. The claude-code-action workflow in the target repo (Taure/gakudan/.github/workflows/claude.yml) already listens on@claudementions, so this closes the loop without needing a maintainer to manually re-apply the label.Test plan
rebar3 fmt --checkrebar3 xrefrebar3 dialyzer(clean)rebar3 ct20/20event: webhook_receivedline appears in Clever Cloud logs under the ECS schema (i.e. with@timestamp,log.level,messagefields)errorobject renders withtype / reason / stacktraceper ECSclaude-trylabel proposal and confirm an@claudefollow-up comment lands on the issue