AtlatestRepositoryfolio
1
;;; sigil-folio - Markdown-native knowledge and project management via MCP2
;;;3
;;; A structured markdown convention paired with MCP tools for task management,4
;;; project tracking, and knowledge accumulation. All state stored as5
;;; human-readable, git-committable markdown files.7
(package8
name: "folio"9
version: "0.2.11"10
sigil: "0.20"11
description: "Markdown-native knowledge and project management via MCP"12
url: "https://codeberg.org/sigil/folio"13
license: "BSD-3-Clause"14
authors: (list "David Wilson <david@daviwil.com>")16
;; `(folio entry)`, NOT `(folio main)`.17
;;18
;; The entry library's `main` dispatches on the FOLIO_DOC_WORKER environment19
;; marker: set, this binary runs the bounded parse worker; unset, it runs the20
;; MCP server. `src/folio/main.sgl` is untouched and still refuses subcommands21
;; -- mode selection happens before any argument is looked at, so no argument22
;; can become a mode. See `src/folio/entry.sgl`.23
;;24
;; Note `entry:` takes a FLAT library name and the runtime calls a procedure25
;; literally named `main` (hardcoded in both `sigil-run/src/main.c` and26
;; `cps-emit-native.c`). The `'((lib) proc)` form in the manifest docstring is27
;; stale -- it belongs to the inert `executables:` record, and passing it here28
;; raises, because the consumer does `(map symbol->string entry)`.29
entry: '(folio entry)30
bundle-name: "folio"32
configs: (list33
(config34
name: 'dev35
output-dir: "build/dev"36
static?: #f37
debug?: #t38
optimize: 039
bundle?: #t)40
(config41
name: 'release42
output-dir: "build/release"43
backend: 'native44
static?: #f45
debug?: #f46
optimize: 247
bundle?: #t))49
dependencies: (list50
;; Explicit sigil-lib pin. Two independent reasons, both measured:51
;; 1. Without it, sigil-lib is derived transitively and does not track52
;; the `sigil:` field, so a relock can silently leave the C runtime53
;; behind while `sigil deps install` exits 0.54
;; 2. sigil-lib's resolution does NOT respect its declared range: with55
;; no explicit pin, a fresh resolve records `ref: "^0.17"` alongside56
;; `version: "0.18.2"` in the same lock entry, on any toolchain,57
;; while sigil-stdlib in that same resolve correctly stays at58
;; 0.17.20. Pinning explicitly is what makes the resolved runtime59
;; match what this manifest actually asks for.60
;; Verify in sigil.lock (the `version:`/`sha:` fields, not `ref:`).61
(from-git url: "codeberg:sigil/sigil"62
package: "sigil-lib" version: ">=0.20")63
(from-git url: "codeberg:sigil/sigil" package: "sigil-run" version: ">=0.20")64
(from-git url: "codeberg:sigil/sigil-json" version: "^0.16.0")65
(from-git url: "codeberg:sigil/sigil-log" version: "^0.16.0")66
;; sigil-mcp ^0.17, NOT ^0.16. The 0.16 line now contains BOTH a release67
;; requiring the 0.18 runtime (v0.16.5) and one requiring 0.17 (v0.16.6,68
;; a deliberate compatibility revert), so ^0.16 no longer determines69
;; which runtime you need. folio runs on 0.18, and ^0.16 re-resolves to70
;; v0.16.6, whose `(sigil env)` import does not exist on 0.18 -- that71
;; builds clean and dies at startup. The 0.17 line is the unambiguous72
;; 0.18-runtime line.73
(from-git url: "codeberg:sigil/sigil-mcp" version: "^0.17")74
(from-git url: "codeberg:sigil/sigil-http" version: "^0.18.0")75
(from-git url: "codeberg:sigil/sigil-sqlite" version: "^0.16.0")76
(from-git url: "codeberg:sigil/sigil-yaml" version: "^0.9")77
(from-git url: "codeberg:sigil/sigil-sxml" version: "^0.15.0")78
(from-git url: "codeberg:sigil/sigil-markdown" version: "^0.9")79
(from-git url: "codeberg:sigil/sigil-web-styles" version: "^0.2.0")80
;; `folio/doc` is a profile over `sigil/doc` (D1), so the folio semantic81
;; containers hold ordinary Sigil Doc block nodes and reuse its inline82
;; nodes -- including `url-link`, which is the node F1a waited for SD-P283
;; to land.84
;;85
;; RESOLVED 2026-08-12 BY sigil-doc v0.1.3 (f83d8d8), recorded rather than86
;; deleted so a reader can tell a fixed caveat from a forgotten one. The87
;; caveat used to say that no RELEASED sigil-doc contained `url-link`, that88
;; v0.1.1 (42a0686) predated SD-P2, and that a green build here was89
;; therefore not evidence about any tag. All three have expired: v0.1.3 is90
;; the first release carrying BOTH `url-link` and SD-P7's section-child91
;; content profile, which is what `(folio doc reader)` delegates to.92
;;93
;; The RANGE and the redirect are deliberately unchanged. Whether folio94
;; should now pin `^0.1.3` and drop the dev redirect is a dependency95
;; decision for merge time, not a change to make underneath a phase that is96
;; mid-flight -- and until it is made, the build still resolves this through97
;; dev-redirects.sgl to ../sigil-doc, so a green build here remains evidence98
;; about a WORKING TREE rather than about a tag. `test/gate-f1b.sh` asserts99
;; the CAPABILITY it depends on (the profile constructors are exported)100
;; rather than any version, because a version is a proxy and the capability101
;; is the thing.102
(from-git url: "codeberg:sigil/sigil-doc" version: "^0.1"))104
dev-dependencies: (list105
(from-git url: "codeberg:sigil/sigil" package: "sigil-test" version: ">=0.20")106
(from-git url: "codeberg:sigil/sigil" package: "sigil-test-runner" version: ">=0.20"))108
tasks: (list109
(task110
name: 'build111
description: "Compile folio modules"112
steps: (list113
(compile-sigil-modules sources: "src/**/*.sgl"114
output-dir: (config-output-subdir "lib"))))))