Skip to content

feat: compile-check writes what each run did to the CLI VibeLog - #3333

Merged
hatayama merged 2 commits into
feature/compile-check-changed-files-checkfrom
feat/compile-check-vibe-log
Oct 15, 2026
Merged

hatayama merged 2 commits into
feature/compile-check-changed-files-checkfrom
feat/compile-check-vibe-log

Conversation

@hatayama

@hatayama hatayama commented Oct 15, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • With ULOOP_DEBUG set, each uloop compile-check run now writes what it did to the project's CLI VibeLog. The log shows what was compiled, reused, checked on changed files, or blocked, why a run fell back, and how long each assembly took.

User Impact

  • Before: compile-check never talks to the Editor, and it wrote nothing to the VibeLogs even with ULOOP_DEBUG set. A long session of runs could not be reconstructed afterwards. Which run took the changed-files check, which fell back and why, and where the time went were all lost once the JSON output scrolled away. Runs that exited 1 were the hardest to recover.
  • After: every run leaves two lines in .uloop/outputs/VibeLogs/cli_vibe_<UTC date>.json, sharing one correlation_id.

Changes

  • cli_compile_check_start (INFO) is written once the project is found. Its fields are command, all, full, jobs, project_identity.
  • cli_compile_check_complete is written on every way out of a run that wrote the start entry:
    • outcome, with the entry's level:
      • succeeded: INFO.
      • errors: WARNING, when compile errors were found.
      • failed: ERROR, when the Editor could not be resolved, the run itself failed, or the response could not be encoded.
    • duration_ms of the whole run.
    • For failed: error and error_code.
    • Otherwise, the response's own lists and counts: error_count, warning_count, compiled, reused, fast_checked, blocked, skipped_count, fast_checks (assembly, reused, changed_file_count), fallbacks and baseline_notes (assembly, reason).
    • units, with the duration_ms and succeeded of each assembly the run compiled or checked. Replayed ones are left out, since they took no work.
  • Without ULOOP_DEBUG, nothing is written and no context is built.
  • A failed write is ignored; the log never fails a run.
  • docs/vibe-logs.md documents both entries, and docs/compile-check.md mentions them.
  • cli/common is unchanged.

Verification

  • New tests:

    • a successful run writes both entries with one correlation id, and every listed field matches the run;
    • a run with errors is logged as WARNING with the errors counted;
    • a failed run is logged as ERROR with the error and its code;
    • runCompileCheck on a project whose Editor is not installed writes a start entry and a failed complete entry of the same run.
  • Mutations, each restored afterwards:

    Mutation Fails
    No failed entry when the Editor cannot be resolved the Editor-resolution test
    The complete entry uses another correlation id all four tests
    outcome is always succeeded the errors, failed, and Editor-resolution tests
    fallbacks is always empty the successful-run test
  • cli/dispatcher:

    • golangci-lint fmt --diff is empty; go vet ./... passes; golangci-lint run and the complexity config both report 0 issues.
    • go test ./... and go test -race on the compile-check and dispatcher packages pass.
    • Coverage with the CI exclusions: 94.25% (baseline 94.2).
  • cli/release-automation: go test ./... passes; check-skill-size passes; the file-length check passes.

  • scripts/sync-tool-docs.sh --check reports no drift.

  • Repository CI does not run on pull requests into this branch; the checks above were run locally.

@coderabbitai

coderabbitai Bot commented Oct 15, 2026

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration
  • Configuration used: Repository: hatayama/unity-cli-loop/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: b77b300c-f5cc-422d-bc57-f68155587114
📥 Commits

Reviewing files that changed from the base of the PR and between f70aaff and 11b326c.

📒 Files selected for processing: 5
  • cli/dispatcher/internal/dispatcher/compile_check.go
  • cli/dispatcher/internal/dispatcher/compile_check_vibe_log.go
  • cli/dispatcher/internal/dispatcher/compile_check_vibe_log_test.go
  • docs/compile-check.md
  • docs/vibe-logs.md
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it. - Brian Kernighan |
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  \
   \     /)/)
        ( '')
        /  |
      o(___)
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Base automatically changed from fix/compile-check-fallback-guidance to feature/compile-check-changed-files-check October 15, 2026 06:13
compile-check never talks to the Editor, so with ULOOP_DEBUG set nothing
recorded which run compiled, reused, or checked which assemblies, why a
fallback happened, or how long each assembly took.

Each run now writes cli_compile_check_start once the project is found and
cli_compile_check_complete on every way out, under one correlation id.
The complete entry copies the response's lists and adds the duration of
each assembly compiled or checked. Nothing is built or written without
ULOOP_DEBUG, and a failed write never fails the run.
The rest of the package states what a test verifies just above the function.
@hatayama
hatayama force-pushed the feat/compile-check-vibe-log branch from 11b326c to c36a071 Compare October 15, 2026 06:15
@hatayama
hatayama merged commit 6e309c9 into feature/compile-check-changed-files-check Oct 15, 2026
3 checks passed
@hatayama
hatayama deleted the feat/compile-check-vibe-log branch October 15, 2026 06:19
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.

1 participant