How to Report a Bug in Everyone-Can-Use-English: Built-In Methods Explained
You can report a bug in Everyone-Can-Use-English using either the Help menu's "Report an Issue" option or by invoking the app-create-issue IPC channel programmatically. Both methods open a pre-filled GitHub issue page in your default browser.
Everyone-Can-Use-English is an open-source English learning application by ZuodaoTech. Knowing how to report a bug effectively helps maintainers diagnose and fix issues faster. The application provides native integrations that streamline this process directly from the app's interface.
Using the Help Menu to Report a Bug
The simplest way to report a bug is through the application's native menu system.
Step-by-Step Menu Navigation
- Open the Everyone-Can-Use-English main window
- Click Help in the menu bar
- Select "Report an Issue"
This triggers Electron's shell.openExternal to launch https://github.com/ZuodaoTech/everyone-can-use-english/issues/new in your default browser, as implemented in enjoy/src/main/window.ts at lines 845-849.
The menu template that enables this functionality:
// From enjoy/src/main/window.ts
{
label: "Help",
submenu: [
{
label: "Report an Issue",
click: () => shell.openExternal(`${REPO_URL}/issues/new`)
},
],
}
Programmatic Bug Reporting via IPC
For developers extending the application or triggering reports from custom UI components, the app-create-issue IPC channel provides programmatic access.
Calling from Renderer Process
Any renderer component can invoke this channel to open a pre-filled issue with diagnostic information:
import { ipcRenderer } from "electron";
function reportBug(title: string, logs?: string) {
ipcRenderer.invoke("app-create-issue", title, logs ?? "");
}
// Example usage:
reportBug(
"Crash when importing audio file",
"Error stack:\n at parseAudioMetadata\n at importFileHandler\n ..."
);
The main process handler at enjoy/src/main/window.ts (lines 58-80) constructs the issue body with:
- Application version — fetched from
app.getVersion() - Platform details — OS, architecture, and Electron version
- Optional log output — passed from the renderer for context-specific debugging
What the Main Process Handler Does
When app-create-issue is invoked, the main process:
- Assembles diagnostic metadata
- URL-encodes the pre-filled title and body
- Opens the constructed GitHub URL via
shell.openExternal
This ensures every bug report includes consistent environmental information, reducing back-and-forth between reporters and maintainers.
Understanding the Repository URL Configuration
The issue links rely on REPO_URL exported from enjoy/src/constants/index.ts. This centralized constant prevents hardcoded strings and ensures all bug-reporting features point to the correct repository.
The resolved URL pattern is:
https://github.com/ZuodaoTech/everyone-can-use-english/issues/new?title=...&body=...
Completing Your GitHub Issue
After either method opens your browser, complete these fields for an effective bug report:
- Title — Clear, concise description of the problem
- Body — Steps to reproduce, expected vs. actual behavior, screenshots if applicable
- Labels — Select appropriate labels if you have permissions
The pre-populated version and platform data from the programmatic method appears automatically in the body field.
Summary
- Menu method: Click Help → Report an Issue for quick manual reporting
- IPC method: Invoke
ipcRenderer.invoke("app-create-issue", title, logs)from any renderer component to include diagnostic data - Core implementation: Located in
enjoy/src/main/window.tswith constants fromenjoy/src/constants/index.ts - Target URL:
https://github.com/ZuodaoTech/everyone-can-use-english/issues/new
Frequently Asked Questions
Can I report a bug without using the built-in menu?
Yes. You can manually navigate to https://github.com/ZuodaoTech/everyone-can-use-english/issues/new in any browser. The built-in methods simply pre-fill helpful diagnostic information automatically.
What information is included in programmatic bug reports?
The app-create-issue handler includes application version, operating system, platform architecture, and Electron version. You can optionally append custom log output or error stack traces as the second parameter.
Where can I find the source code for the bug reporting feature?
The IPC handler and menu definition reside in enjoy/src/main/window.ts. The repository URL constant is defined in enjoy/src/constants/index.ts. These files handle both the menu-driven and programmatic reporting flows according to the Everyone-Can-Use-English source code.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →