Thank you for your interest in contributing. This document explains how to get set up, follow project conventions, and submit changes.
-
Clone the repository and ensure you have the prerequisites (Rust, Node.js, Tauri v2 build tools).
-
Run the app in development:
cd app npm install npm run tauri dev -
Run tests and checks before submitting:
cd graph_hunter_core && cargo test cd ../app && npx tsc --noEmit cd src-tauri && cargo check
- Branch: Use a feature branch (e.g.
feature/new-parser,fix/hunt-pagination). The default branch ismaster. - Commits: Use imperative, concise summary lines (e.g.
Add CSV parser,Fix timeline sort). Add a body for details when helpful. - Scope: Keep changes focused. For larger work, open an issue first to discuss.
- Rust (graph_hunter_core): Domain logic lives in the core library. Parsers implement the
LogParsertrait; tests live in themod testsblock inlib.rs. See .claude/CLAUDE.md for parser pattern, test naming, and error handling. - Tauri (app/src-tauri): Thin command layer over the core. Commands are prefixed with
cmd_; add new formats via a match arm incmd_load_dataand a corresponding parser import. - Frontend (app/src): Functional React components, TypeScript types in
types.ts, Tauriinvoke<>for backend calls. Icons fromlucide-reactwithsize={14}for consistency.
Full conventions (parser checklist, frontend patterns, Git) are documented in .claude/CLAUDE.md.
- Implement
LogParseringraph_hunter_core/src/<format>.rs. - Register the module and parser in
graph_hunter_core/src/lib.rs. - Add a format branch in
app/src-tauri/src/lib.rsincmd_load_data. - Add the format option in
app/src/components/IngestPanel.tsx. - Add demo data under
demo_data/and tests ingraph_hunter_core/src/lib.rs. - Run
cargo test,npx tsc --noEmit, andcargo checkinapp/src-tauri.
- Ensure all tests pass and the app runs (
npm run tauri dev). - Open a pull request with a clear title and description of the change.
- Reference any related issue if applicable.
- Bugs or feature ideas: Open a GitHub issue.
- Security concerns: Please report privately (e.g. via maintainer contact) rather than in a public issue. See SECURITY.md for how to report vulnerabilities.
Thanks for contributing.