Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
d5b2816
feat(research): classify Zotero library snapshot
seonghobae Sep 4, 2026
f9b7510
fix(research): require classification token boundaries
seonghobae Sep 4, 2026
a1d95fc
test(zotero): pin review findings before repair
seonghobae Sep 4, 2026
3696b31
fix(zotero): preserve abstentions and bound snapshot intake
seonghobae Sep 4, 2026
7af9cc8
test(zotero): keep review contract warning-clean
seonghobae Sep 4, 2026
d0fa0e4
fix(zotero): confine local reports to temp output
seonghobae Sep 4, 2026
0798c6f
docs(zotero): record bounded read and report confinement
seonghobae Sep 4, 2026
e25c5d8
docs(zotero): specify whole-snapshot resource budgets
seonghobae Sep 4, 2026
150ed5d
test(zotero): pin ambiguity and replay evidence findings
seonghobae Sep 4, 2026
3760191
fix(zotero): make reader contract replayable and review-safe
seonghobae Sep 4, 2026
69d03ab
fix(zotero): surface final report flush failures
seonghobae Sep 4, 2026
2806afe
docs(ddd): map Zotero research intake ACL
seonghobae Sep 4, 2026
11f72ac
fix(zotero): repair reader contract test fixture
seonghobae Sep 4, 2026
eccea5b
docs(zotero): pin Local API v3 and replay evidence
seonghobae Sep 4, 2026
856fdf4
docs(research): use the canonical temp output path
seonghobae Sep 4, 2026
dd21843
fix(research): verify integrated review repairs
seonghobae Sep 4, 2026
5cda60e
fix(research): close follow-up review findings
seonghobae Sep 4, 2026
265ea0f
chore(research): adopt current Foundation CI contract
seonghobae Sep 4, 2026
cda5466
merge(research): adopt draft-aware Foundation CI
seonghobae Sep 4, 2026
256076d
merge(research): adopt refreshed Foundation baseline
seonghobae Sep 5, 2026
31b507a
test(zotero): reproduce metadata proxy and exact-limit failures
seonghobae Sep 5, 2026
a2a8488
fix(zotero): isolate metadata transport and accept inclusive byte limits
seonghobae Sep 5, 2026
aff539f
test(zotero): expose unbounded metadata read duration
seonghobae Sep 6, 2026
e6b2a22
fix(zotero): bound complete metadata reads by elapsed time
seonghobae Sep 6, 2026
a3d51e0
docs(zotero): record bounded snapshot read evidence
seonghobae Sep 6, 2026
bb2facc
docs(zotero): note bounded metadata intake
seonghobae Sep 6, 2026
1cf3472
test(zotero): reproduce impossible item revision admission
seonghobae Sep 6, 2026
8effa6a
fix(zotero): reject item revisions beyond the library snapshot
seonghobae Sep 6, 2026
f856640
docs(zotero): bind revision admission to provider evidence
seonghobae Sep 6, 2026
48dcd0d
test(research): expose discarded nonbibliographic source scope
seonghobae Sep 6, 2026
220f697
fix(research): retain unclassified sources and unresolved ancestry
seonghobae Sep 6, 2026
48c3525
refactor(research): consume each source adjacency list once
seonghobae Sep 6, 2026
f7a67bf
test(research): reject missing source identity at reader admission
seonghobae Sep 6, 2026
3a57f3b
test(research): isolate blank identity from duplicate-key rejection
seonghobae Sep 6, 2026
1e95d6e
fix(research): reject blank identity before source accumulation
seonghobae Sep 6, 2026
51c7df6
docs(research): bind source inventory evidence and pending admission …
seonghobae Sep 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@ All notable changes to ConceptWeave are documented here.

## Unreleased

### Fixed

- Research reports retain standalone files and notes that previously disappeared from the classification view, and flag sources whose parent relationships remain unresolved.
- Zotero research intake rejects a read whose records claim revisions newer than the library being observed, without dropping papers or changing their recorded revisions.
- Zotero research intake rejects incomplete or late results after a five-minute read budget, even when individual pages arrive within their request limits.

### Added

- Initial ConceptWeave product, DDD, security, test, and operability baselines.
Expand Down
176 changes: 176 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[workspace]
members = ["crates/conceptweave-domain"]
members = ["crates/conceptweave-domain", "crates/conceptweave-zotero"]
resolver = "2"

[workspace.package]
Expand Down
10 changes: 10 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
# ConceptWeave

## Local Zotero research proposal

With Zotero running locally:

```sh
cargo +1.98.0 run --bin conceptweave-zotero -- /tmp/conceptweave-zotero-classification.json
```

The command reads one stable library-version snapshot and creates a local, reviewable JSON report. Output is restricted to a new direct child of canonical `/tmp` or the system temporary directory, and the command never changes Zotero records.

[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/ContextualWisdomLab/ConceptWeave)

**Automatic, evidence-bound ontology and semantic-layer engineering for governed enterprise meaning.**
Expand Down
23 changes: 23 additions & 0 deletions crates/conceptweave-zotero/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
[package]
name = "conceptweave-zotero"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
repository.workspace = true
license.workspace = true
description = "Read-only Zotero research classification for ConceptWeave"

[dependencies]
serde = { version = "1", features = ["derive"] }
serde_json = "1"
ureq = { version = "3", default-features = false }

[lib]
path = "src/lib.rs"

[[bin]]
name = "conceptweave-zotero"
path = "src/main.rs"

[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ["cfg(coverage_nightly)"] }
Loading