Skip to content

[messages] add some logging to the worker#202

Merged
capcom6 merged 1 commit intomasterfrom
messages/add-worker-logging
Aug 29, 2025
Merged

[messages] add some logging to the worker#202
capcom6 merged 1 commit intomasterfrom
messages/add-worker-logging

Conversation

@capcom6
Copy link
Copy Markdown
Owner

@capcom6 capcom6 commented Mar 12, 2025

Summary by CodeRabbit

  • New Features
    • Added internal logging for the message worker lifecycle (start, successful completion, error reporting).
  • Bug Fixes
    • Worker now records error details before retrying to improve observability of failures.
  • Documentation
    • No public API changes; instrumentation-only update that is transparent to users.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Mar 12, 2025

🤖 Pull request artifacts

file commit
app-release.apk 1ba3dcf
app-release.aab 1ba3dcf
app-insecure.apk 1ba3dcf
app-insecure.aab 1ba3dcf

@capcom6 capcom6 force-pushed the messages/add-worker-logging branch from fdec9c1 to c7d85f9 Compare August 28, 2025 05:15
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Aug 28, 2025

Walkthrough

Adds a LogsService dependency to SendMessagesWorker and instruments the worker with DEBUG and ERROR LogEntry calls around start, completion, and exception handling; preserves the single call to messagesSvc.sendPendingMessages() and returns Result.success() or Result.retry(); no public API changes.

Changes

Cohort / File(s) Summary of changes
SendMessagesWorker — logging instrumentation
app/src/main/java/me/capcom/smsgateway/modules/messages/workers/SendMessagesWorker.kt
- Injected LogsService and added private logsService field
- Added LogEntry-based DEBUG logs for worker start and successful completion
- Added LogEntry-based ERROR log on exception with the exception message
- Retained single messagesSvc.sendPendingMessages() call in doWork() and preserved Result.success() / Result.retry() behavior
- Added imports for LogsService and LogEntry

Sequence Diagram(s)

sequenceDiagram
  autonumber
  participant WM as WorkManager
  participant W as SendMessagesWorker
  participant MS as MessagesService
  participant LS as LogsService

  WM->>W: startWork()
  W->>LS: log(DEBUG: "Worker started")
  W->>MS: sendPendingMessages()
  alt success (no exception)
    W->>LS: log(DEBUG: "Completed successfully")
    W-->>WM: Result.success()
  else exception
    W->>LS: log(ERROR: "Failure: <err.message>")
    W-->>WM: Result.retry()
  end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes


📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between d44224d and 1ba3dcf.

📒 Files selected for processing (1)
  • app/src/main/java/me/capcom/smsgateway/modules/messages/workers/SendMessagesWorker.kt (2 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • app/src/main/java/me/capcom/smsgateway/modules/messages/workers/SendMessagesWorker.kt
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: Build release / build-apk
  • GitHub Check: Build insecure / build-apk
✨ Finishing Touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch messages/add-worker-logging

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
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbit in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbit in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbit gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbit read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbit help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbit ignore or @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbit summary or @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbit or @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (3)
app/src/main/java/me/capcom/smsgateway/modules/messages/workers/SendMessagesWorker.kt (3)

25-25: Prefer constructor/assisted injection for Worker (testability).

Property injection works, but Koin’s Worker-friendly constructor/assisted injection improves testability and avoids static access patterns.


37-44: Tight loop: add cooperative cancellation and clarify the log; remove the confusing comment.

Helps WorkManager stop gracefully and makes logs clearer.

Apply this diff:

-            while (messagesSvc.sendPendingMessages()) {
-                // why not to `Result.retry()`?
-                logsService.insert(
-                    LogEntry.Priority.DEBUG,
-                    NAME,
-                    "SendMessagesWorker started next iteration"
-                )
-            }
+            while (messagesSvc.sendPendingMessages()) {
+                if (isStopped) break
+                logsService.insert(
+                    LogEntry.Priority.DEBUG,
+                    NAME,
+                    "More pending messages detected; continuing"
+                )
+            }

46-50: Success log nit.

Consider INFO (if available) or include a small summary (e.g., iterations, counts) to make this log more actionable.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between cfea2d7 and c7d85f9.

📒 Files selected for processing (1)
  • app/src/main/java/me/capcom/smsgateway/modules/messages/workers/SendMessagesWorker.kt (2 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: Build release / build-apk
  • GitHub Check: Build insecure / build-apk
🔇 Additional comments (1)
app/src/main/java/me/capcom/smsgateway/modules/messages/workers/SendMessagesWorker.kt (1)

14-15: LGTM on logging imports.

New LogsService/LogEntry imports look correct and align with the added usage.

@capcom6 capcom6 force-pushed the messages/add-worker-logging branch from d44224d to 1ba3dcf Compare August 28, 2025 09:14
@capcom6
Copy link
Copy Markdown
Owner Author

capcom6 commented Aug 29, 2025

On device...

@capcom6 capcom6 merged commit 1a72ba2 into master Aug 29, 2025
4 checks passed
@capcom6 capcom6 deleted the messages/add-worker-logging branch November 18, 2025 23:12
@coderabbitai coderabbitai Bot mentioned this pull request Apr 23, 2026
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