Skip to main content

Crate vissue_core

Crate vissue_core 

Source
Expand description

Plain-text issue tracking over per-project orgmode files.

An issue is one top-level org heading in <root>/<prefix>/<project>/issues.org, where prefix defaults to Software. The file is the database: every verb parses it, and every mutation rewrites it under a lock. Reports never print; they return String, so a CLI, an MCP server, and a library caller all share one code path.

Re-exports§

pub use config::Layout;
pub use config::VissueConfig;
pub use config::DEFAULT_PREFIX;
pub use model::IssueHeading;
pub use model::LogEntry;
pub use model::READY_STATES;
pub use model::TODO_HEADER;
pub use model::TODO_KEYWORDS;
pub use ops::CreateOpts;
pub use store::IssueDoc;

Modules§

agent
Verbs shaped for a program rather than a person: structured rows, claiming, a body excerpt, and a hygiene checklist.
catalog
In-memory query facade over a parsed issue catalog.
config
Root and layout resolution plus the optional on-disk configuration.
digest
A content digest of the corpus, so a consumer can tell whether a projection it holds is still current.
error
Matchable errors so callers do not parse [Display] text.
events
Append-only change log and generation counter, so a poller notices a write without re-parsing every issues.org.
graph
In-memory dependency graph for validation and bounded multi-hop queries.
keys
Action catalog and keys.toml overlay.
mirror
A read-only projection of selected projects into a single shareable file.
model
The issue heading and its logbook: parsing, accessors, and rendering.
ops
Mutating verbs: create, update, and move issues between projects.
related
Explainable, derived connections between Org issue headings.
report
Read-only verbs. Every function returns its text instead of printing, so a CLI, an MCP server, and a library caller share one implementation.
store
The on-disk store: one issues.org per project, parsed and rewritten whole.
views
Typed issue views shared by JSON output and later control clients.