{
"path": "/3m5yq7hwzzk2b",
"site": "at://did:plc:xg2vq45muivyy3xwatcehspu/site.standard.publication/3m3zpxhfl3c2s",
"$type": "site.standard.document",
"title": "Dev Log 20: 2025-11-19",
"content": {
"$type": "pub.leaflet.content",
"pages": [
{
"$type": "pub.leaflet.pages.linearDocument",
"blocks": [
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 2,
"facets": [
{
"index": {
"byteEnd": 12,
"byteStart": 8
},
"features": [
{
"uri": "https://stormlightlabs.github.io/beacon/",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "Beacon (docs)"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 37,
"byteStart": 31
},
"features": [
{
"uri": "https://github.com/stormlightlabs/beacon/releases/tag/v0.3.0",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "I drafted and released version v0.3.0 of Beacon. This release focused entirely around refining the type checker. Next up is creating configurable type checker modes."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "My goal was to finish this work by Saturday so it's pretty nice to be done early."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "Today I'll break down v0.4.0 into subtasks for my PRs. Is it silly to be drafting PRs for no one to review?"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 24,
"byteStart": 9
},
"features": [
{
"uri": "https://github.com/stormlightlabs/typeshed-stdlib-mirror",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "Once the typeshed mirror has been integrated, look out for marketplace releases!"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.header",
"level": 2,
"facets": [
{
"index": {
"byteEnd": 13,
"byteStart": 9
},
"features": [
{
"uri": "https://tangled.org/desertthunder.dev/mccabre",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "Mccabre (code)"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "Beacon's test modules are ridiculously long so I'm working on extending the lines of code analysis to recursively walk a project/directory to rank files by length."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 114,
"byteStart": 106
},
"features": [
{
"uri": "https://github.com/torvalds/linux",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "This codebase has one of my \"wackier\" experiments with README files. I like the way plaintext READMEs are rendered on git hosts."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [
{
"index": {
"byteEnd": 69,
"byteStart": 65
},
"features": [
{
"uri": "https://github.com/toon-format/toon",
"$type": "pub.leaflet.richtext.facet#link"
}
]
}
],
"plaintext": "Some of the outputs come out as JSON. There's a lot around about TOON and it may be worth it to implement that. Creating bindings for serde may be a fun project too if it doesn't exist already."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "Here's what the directory ranking looks like:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.code",
"language": "shellscript",
"plaintext": "================================================================================\nLINES OF CODE ANALYSIS\n================================================================================\n\nSUMMARY\n--------------------------------------------------------------------------------\nTotal files analyzed: 22\nTotal physical LOC: 3393\nTotal logical LOC: 2272\nTotal comment lines: 180\nTotal blank lines: 941\n\nDIRECTORIES RANKED BY Logical LOC\n--------------------------------------------------------------------------------\n\nDIRECTORY: ./crates/core/src\n Total Physical: 1126 | Logical: 583 | Comments: 42 | Blank: 501\n\n Files:\n reporter.rs (Logical LOC: 212) - P: 260 | L: 212 | C: 16 | B: 32\n loader.rs (Logical LOC: 150) - P: 204 | L: 150 | C: 8 | B: 46\n config.rs (Logical LOC: 135) - P: 186 | L: 135 | C: 14 | B: 37\n tokenizer.rs (Logical LOC: 61) - P: 442 | L: 61 | C: 4 | B: 377\n error.rs (Logical LOC: 17) - P: 24 | L: 17 | C: 0 | B: 7\n lib.rs (Logical LOC: 8) - P: 10 | L: 8 | C: 0 | B: 2\n\nDIRECTORY: ./crates/cli/src/commands\n Total Physical: 625 | Logical: 527 | Comments: 2 | Blank: 96\n\n Files:\n analyze.rs (Logical LOC: 169) - P: 199 | L: 169 | C: 1 | B: 29\n loc.rs (Logical LOC: 112) - P: 130 | L: 112 | C: 0 | B: 18\n clones.rs (Logical LOC: 104) - P: 124 | L: 104 | C: 1 | B: 19\n complexity.rs (Logical LOC: 99) - P: 118 | L: 99 | C: 0 | B: 19\n dump_config.rs (Logical LOC: 38) - P: 48 | L: 38 | C: 0 | B: 10\n mod.rs (Logical LOC: 5) - P: 6 | L: 5 | C: 0 | B: 1\n\nDIRECTORY: ./crates/core/src/complexity\n Total Physical: 669 | Logical: 462 | Comments: 57 | Blank: 150\n\n Files:\n loc.rs (Logical LOC: 275) - P: 375 | L: 275 | C: 32 | B: 68\n cyclomatic.rs (Logical LOC: 183) - P: 288 | L: 183 | C: 25 | B: 80\n mod.rs (Logical LOC: 4) - P: 6 | L: 4 | C: 0 | B: 2\n",
"syntaxHighlightingTheme": "nord"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "and here's file ranking:"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.code",
"language": "shellscript",
"plaintext": "================================================================================\nLINES OF CODE ANALYSIS\n================================================================================\n\nSUMMARY\n--------------------------------------------------------------------------------\nTotal files analyzed: 22\nTotal physical LOC: 3393\nTotal logical LOC: 2272\nTotal comment lines: 180\nTotal blank lines: 941\n\nFILES RANKED BY Logical LOC\n--------------------------------------------------------------------------------\n\n1. ./crates/core/src/complexity/loc.rs (Logical LOC: 275)\n Physical: 375 | Logical: 275 | Comments: 32 | Blank: 68\n\n2. ./crates/core/src/reporter.rs (Logical LOC: 212)\n Physical: 260 | Logical: 212 | Comments: 16 | Blank: 32\n\n3. ./crates/cli/src/highlight.rs (Logical LOC: 200)\n Physical: 236 | Logical: 200 | Comments: 2 | Blank: 34\n\n4. ./crates/core/src/complexity/cyclomatic.rs (Logical LOC: 183)\n Physical: 288 | Logical: 183 | Comments: 25 | Blank: 80",
"syntaxHighlightingTheme": "nord"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "These are both truncated."
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.horizontalRule"
}
},
{
"$type": "pub.leaflet.pages.linearDocument#block",
"block": {
"$type": "pub.leaflet.blocks.text",
"facets": [],
"plaintext": "To those that read these, many thanks! Please feel free to open issues or leave feedback!! Your thoughts are welcome and greatly appreciated. "
}
}
]
}
]
},
"bskyPostRef": {
"cid": "bafyreia3rvgrav6bhtq6n2nuaafo4xgorsw6snudbymwtzutarmd57kd2y",
"uri": "at://did:plc:xg2vq45muivyy3xwatcehspu/app.bsky.feed.post/3m5yq7mwy6s2b",
"commit": {
"cid": "bafyreieiuzuz3ibzxus62trqw6mc2hxfpddonwdlkpu5ayb5f4hjz5zgiq",
"rev": "3m5yq7mzbmq26"
},
"validationStatus": "valid"
},
"description": "Released v0.3.0 of Beacon",
"publishedAt": "2025-11-19T17:02:16.150Z"
}