All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project follows Semantic Versioning.
- Added local CLI command
python pkm.py bulk-import --input <file.csv> [--mapping <name|path|auto>] [--mappings-dir <dir>] [--apply]for reusable mapping-driven CSV imports. - Added dry-run-by-default import execution with optional
--applymode for writing table updates. - Added reusable mapping files under
schema/import_mappings/with named files and auto-selection by source headers. - Added mapping support for ordered entity upserts and optional relation upserts using
ref:<entity_key>references. - Added
python pkm.py mappings listto discover mappings and report mapping validity. - Added
python pkm.py mappings validateto validate mapping structure and optional source-CSV compatibility. - Added
--validate-onlymode tobulk-importfor preflight validation without row processing. - Added
schema/import_mapping.contract.schema.jsonand a CI validation step for reusable mapping files. - Added
required_csv_columnsas a contract alias for header matching so the design is closer to the original 0.8.0 sketch.
- Updated CLI documentation with bulk import syntax, behavior, and mapping token rules.
- Added local CLI command
python pkm.py update <dataset> <id> --set key=valueto update existing entity rows by ID. - Added support for updating in-table relationship fields (for example
*_idcolumns) through the newupdatecommand. - Added GitHub Issue Form support for update operations (
Update Entity) mapped topkm.py update. - Added issue workflow mode for entity updates with maintainer guard, full pipeline execution, and direct commit to default branch.
- Updated CLI documentation with
updatecommand usage and examples.
- Updated GitHub issue-form automation to run the full pipeline after entity/link operations so generated outputs (including README dataset inventory counters) stay synchronized.
- Fixed note header generation so entity note frontmatter includes all entity-table columns, not only
idandtype.
- Added
python pkm.py reprocess-notesto re-render all note headers and generated note blocks from current CSV tables.
- Documented the recommended
main+issue-opsbranch strategy for GitHub issue-form editing. - Documented that issue form visibility is controlled by the repository default branch, while
.github/pkm-issue-ops.enabledonly gates automation. - Documented maintenance sync guidance for updating
issue-opsfrommain.
- Added a maintainer-only guard for GitHub issue-form automation so only
OWNER,MEMBER, andCOLLABORATORcan trigger entity and relationship updates.
- Documented that issue form visibility is controlled by the repository default branch, while
.github/pkm-issue-ops.enabledonly gates automation.
- Added dataset bootstrap support in
pkm.py new: when a dataset does not exist, columns can be created from--columnsand from keys provided via--set. - Added GitHub Issue Forms for adding entities and relationships without manual CSV edits.
- Added issue-driven GitHub Actions automation that applies form requests with
pkm.pyand updates the repository directly.
- Updated CLI documentation with the remote GitHub issue-form workflow.
- Updated issue-form workflow to commit changes directly to the default branch and close processed issues.
- Updated issue-form workflow JavaScript actions to Node 24-compatible configuration (
actions/github-script@v8andFORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true).
- Extended
pkm.py newto accept repeated--set key=valuepairs so entity rows can be created with all existing table columns in one command. - Added CLI contract tests for creating entities with additional fields and for rejecting unknown columns.
- Updated CLI documentation to include
newcommand syntax with optional--setvalues and examples.
- Fixed execution workflow for rendering a content directory in
README.md.
- Implemented automation to render a content directory in
README.md.
- Replaced id-based output format for a name-based approach in auto-generated indexes.
- Changed output format for auto-generated indexes.
- Added migration script for wiki links.
- Changed link generation behavior to use standard relative Markdown links.
- Auto-generated entity indexes and preserved explicit config precedence.
- Added fallback to system Python when Conda environment is unavailable.
- First working CLI with
newandlinkcommands inpkm.py. - Exact dataset-name contract (no singularization/pluralization inference).
- Automated note rendering via generated blocks (
header,list:<table>,table:<table>). - Config-driven index generation from
schema/automation.json. - Validation script for CSV schema, IDs, FK integrity, note frontmatter, and links.
- Bootstrap, hook, and CI workflow for deterministic checks.
- Public export script with private-ID filtering and note policy options (
redact,drop). - Attachment export from note-relative links with private-file denylist support.
- Public docs set under
pkm.wiki/and rootREADME.md.
- This is the first release candidate milestone suitable for initial public use.