Fossil's tickets are artifacts, and artifacts are forever: every typo, duplicate and piece of spam a tracker accepts becomes part of the repository's permanent, synchronized history. That is the right property for the tickets that matter — provenance you can trust decades later — and the wrong one for an open intake door.
Quarry adds a second tier in front of the artifact log. A local ticket lives in the forge's own database (oltp), never in the zit store. It renders in the same tracker views, wears the same fields and vocabulary, and can be triaged like any other ticket — but it does not sync, it can be deleted outright, and it enters the fossil only when an admin promotes it.
The two tiers
| local ticket | fossil ticket | |
|---|---|---|
| lives in | forge database (oltp) | zit store (artifacts) |
| filed by | anyone holding cap n |
signed-in accounts, n |
| deletable | yes — discard, gone | no (shun is the only out) |
| travels with clone | no | yes |
| promoted | by an admin, one click | is the promotion target |
Who may file
The gate is fossil's own capability system — no new settings surface.
ticket.intake (the local door) requires capability n, resolved
through the category closure:
- Stock behaviour: any signed-in account holds the
anonymouscategory (hmnc— n included), so members file local tickets freely. - Open intake to strangers: grant
nto thenobodycategory for that repository in settings. Visitors then file local tickets without an account. The web form adds a honeypot field and a per-address rate limit; a discarded spam ticket vanishes without trace. - Close intake: blank
nfrom the categories, as fossil admins always have.
Filing directly into the fossil is unchanged: ticket.new still
requires a signed-in account with n, and the web form offers it only
to those who hold it.
Identity and links
Local tickets mint random 40-hex ids, so /r/{repo}/ticket/{id} and
[/tktview/…] references work identically across tiers. Listings mark
local rows with a local chip and filter on is:local.
Promotion
Promotion is deliberate distillation, not replay. An admin promoting a
local ticket writes two artifacts: one ticket new carrying the
folded field state and description, with provenance recorded in the
text (reported by whom, when, promoted by whom); and, when discussion
exists, one ticket set whose comment collates it verbatim, each entry
prefixed with its author and date. The change-by-change history of the
local tier is working noise and stays out of the permanent log — that
is the point of the tier.
After promotion the local id becomes a tombstone: the old URL redirects to the fossil ticket forever, and the mapping is the only thing kept.
What to know before relying on it
Local tickets live in one forge's data directory. They do not clone, do not sync, and are not recovered by rebuilding a forge from the store — back up the oltp database if the intake queue matters to you. Anything whose loss would hurt belongs in the fossil: promote it.