First follow-up after the v0.1.0 OSS launch. Visibility tier model gets enforced end-to-end, OAuth gains DCR lifecycle controls, and the Reader picks up Cmd-K cross-project search.
Highlights
Visibility tier model end-to-end
- Project list, MCP history reads, asset attachments, and inbox review queue now all gate on artifact
visibility(public/org/private). - Project tier caps the per-artifact visibility ceiling so a private project cannot expose public artifacts above its own ceiling.
- Cross-visibility asset warnings + local-path upload restrictions land the asset surface defaults on the safer side.
Reader UX
- Cmd-K now searches across every project the caller can see, not just the active project.
- Reader markdown rendering covers more block + inline cases.
- Wiki list adds artifact pagination; sidebar area button nesting + inbox review queue both hardened.
Task template + propose
- Task template gains an `## Outcome` slot so `pindoc.task.claim_done` evidence stays consistent across the corpus.
- `pindoc.artifact.propose` validation noise toned down (legitimate writes no longer flagged).
- Pin commit-evidence requirement now splits by lane (code-pin vs evidence-only artifacts).
OAuth + auth
- DCR (Dynamic Client Registration) gains lifecycle pruning to bound stale clients.
- OAuth consent flow secured + localized; admin UX cleanups.
- First-run identity routes are guarded against bypass.
Compatibility
Backwards-compatible with v0.1.0 self-host installs. `docker compose pull && docker compose up -d` upgrades the daemon without DB rewrite. Existing artifacts are unchanged; new visibility filters only restrict reads — no data is dropped.
Install
```bash
git clone https://github.com/var-gg/pindoc.git
cd pindoc
docker compose up -d --build
```
Open http://localhost:5830/. License: Apache-2.0.