{
  "path": "/3m5wtjn7dpk2g",
  "site": "at://did:plc:xg2vq45muivyy3xwatcehspu/site.standard.publication/3m3zpxhfl3c2s",
  "$type": "site.standard.document",
  "title": "Dev Log 19: 2025-11-18",
  "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": [],
              "plaintext": "Primary"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.header",
              "level": 3,
              "facets": [
                {
                  "index": {
                    "byteEnd": 12,
                    "byteStart": 8
                  },
                  "features": [
                    {
                      "uri": "https://github.com/stormlightlabs/beacon",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 17,
                    "byteStart": 13
                  },
                  "features": [
                    {
                      "uri": "https://stormlightlabs.github.io/beacon/",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "Beacon (code/docs)"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 91,
                    "byteStart": 87
                  },
                  "features": [
                    {
                      "uri": "https://stormlightlabs.github.io/beacon/#core-capabilities",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 115,
                    "byteStart": 107
                  },
                  "features": [
                    {
                      "uri": "https://x.com/_desertthunder/status/1990861830927929364",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "I updated the documentation to feature the core capabilities of the LSP implementation here thanks to some feedback (warning: it's on the everything app) I got!"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "The work I did today solidified constraints and bounds around type variables in the type checker. Basically to fulfill:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.blockquote",
              "facets": [],
              "plaintext": "Type variables give us the space of possible types. Constraints carve out the subset of that space which is actually allowed"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.header",
              "level": 2,
              "facets": [],
              "plaintext": "Secondary"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.header",
              "level": 3,
              "facets": [
                {
                  "index": {
                    "byteEnd": 13,
                    "byteStart": 9
                  },
                  "features": [
                    {
                      "uri": "https://tangled.org/desertthunder.dev/lantern",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "Lantern (code)"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "Speaking of feedback, a nice user opened an issue about an inaccuracy in the README and it's been fixed. I hope I get more of that! Feels good man!"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 138,
                    "byteStart": 133
                  },
                  "features": [
                    {
                      "uri": "https://github.com/maaslalani/slides",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 223,
                    "byteStart": 221
                  },
                  "features": [
                    {
                      "uri": "https://pkg.go.dev/github.com/charmbracelet/lipgloss/v2#LightDarkFunc",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 290,
                    "byteStart": 270
                  },
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#code"
                    },
                    {
                      "uri": "https://docs.rs/terminal-colorsaurus/latest/terminal_colorsaurus/",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 355,
                    "byteStart": 332
                  },
                  "features": [
                    {
                      "$type": "pub.leaflet.richtext.facet#code"
                    }
                  ]
                }
              ],
              "plaintext": "Do you ever try to solve a problem and then discover it's been solved already? I've been making a rust version of one of my favorite tools and needed to figure out how to make a light/dark detector like charm's lipgloss (v2). I discovered a crate that does that for me! terminal-colorsaurus abstracts the results in to enum members ThemeMode::Light | Dark"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "Here's what I learned:"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.unorderedList",
              "children": [
                {
                  "$type": "pub.leaflet.blocks.unorderedList#listItem",
                  "content": {
                    "$type": "pub.leaflet.blocks.text",
                    "facets": [],
                    "plaintext": "OSC (Operating System Commands) 10 and 11 are terminal escape sequences used to get or set the terminal’s default foreground and background colors."
                  },
                  "children": []
                },
                {
                  "$type": "pub.leaflet.blocks.unorderedList#listItem",
                  "content": {
                    "$type": "pub.leaflet.blocks.text",
                    "facets": [
                      {
                        "index": {
                          "byteEnd": 87,
                          "byteStart": 45
                        },
                        "features": [
                          {
                            "$type": "pub.leaflet.richtext.facet#bold"
                          }
                        ]
                      }
                    ],
                    "plaintext": "In xterm’s control sequence documentation, OSC 10 and 11 are \"dynamic color\" commands:"
                  },
                  "children": [
                    {
                      "$type": "pub.leaflet.blocks.unorderedList#listItem",
                      "content": {
                        "$type": "pub.leaflet.blocks.text",
                        "facets": [
                          {
                            "index": {
                              "byteEnd": 6,
                              "byteStart": 0
                            },
                            "features": [
                              {
                                "$type": "pub.leaflet.richtext.facet#bold"
                              }
                            ]
                          },
                          {
                            "index": {
                              "byteEnd": 39,
                              "byteStart": 16
                            },
                            "features": [
                              {
                                "$type": "pub.leaflet.richtext.facet#italic"
                              }
                            ]
                          }
                        ],
                        "plaintext": "OSC 10: default text (foreground) color"
                      },
                      "children": []
                    },
                    {
                      "$type": "pub.leaflet.blocks.unorderedList#listItem",
                      "content": {
                        "$type": "pub.leaflet.blocks.text",
                        "facets": [
                          {
                            "index": {
                              "byteEnd": 6,
                              "byteStart": 0
                            },
                            "features": [
                              {
                                "$type": "pub.leaflet.richtext.facet#bold"
                              }
                            ]
                          },
                          {
                            "index": {
                              "byteEnd": 32,
                              "byteStart": 16
                            },
                            "features": [
                              {
                                "$type": "pub.leaflet.richtext.facet#italic"
                              }
                            ]
                          }
                        ],
                        "plaintext": "OSC 11: default background color"
                      },
                      "children": []
                    }
                  ]
                },
                {
                  "$type": "pub.leaflet.blocks.unorderedList#listItem",
                  "content": {
                    "$type": "pub.leaflet.blocks.text",
                    "facets": [
                      {
                        "index": {
                          "byteEnd": 17,
                          "byteStart": 13
                        },
                        "features": [
                          {
                            "$type": "pub.leaflet.richtext.facet#italic"
                          }
                        ]
                      }
                    ],
                    "plaintext": "They support both setting and querying."
                  },
                  "children": []
                },
                {
                  "$type": "pub.leaflet.blocks.unorderedList#listItem",
                  "content": {
                    "$type": "pub.leaflet.blocks.text",
                    "facets": [
                      {
                        "index": {
                          "byteEnd": 34,
                          "byteStart": 17
                        },
                        "features": [
                          {
                            "uri": "https://ghostty.org/docs/config/reference#osc-color-report-format",
                            "$type": "pub.leaflet.richtext.facet#link"
                          }
                        ]
                      },
                      {
                        "index": {
                          "byteEnd": 78,
                          "byteStart": 60
                        },
                        "features": [
                          {
                            "$type": "pub.leaflet.richtext.facet#code"
                          }
                        ]
                      }
                    ],
                    "plaintext": "One of Ghostty's reporting formats for OSC 10/11 queries is rgb:RRRR/GGGG/BBBB"
                  },
                  "children": [
                    {
                      "$type": "pub.leaflet.blocks.unorderedList#listItem",
                      "content": {
                        "$type": "pub.leaflet.blocks.text",
                        "facets": [],
                        "plaintext": "16-bit per channel hex numbers (scaled up)"
                      },
                      "children": []
                    }
                  ]
                }
              ]
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [],
              "plaintext": "Also, check this out! We got admonitions!"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "alt": "screenshot of lantern's admonition support",
              "$type": "pub.leaflet.blocks.image",
              "image": {
                "$type": "blob",
                "ref": {
                  "$link": "bafkreiglpe3qgyxne2n2nuw2l2vlsj4bg4hhw6urz4jdd7ymmu7qcuv7um"
                },
                "mimeType": "image/png",
                "size": 354716
              },
              "aspectRatio": {
                "width": 2042,
                "height": 1424
              }
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.header",
              "level": 3,
              "facets": [
                {
                  "index": {
                    "byteEnd": 20,
                    "byteStart": 16
                  },
                  "features": [
                    {
                      "uri": "https://github.com/desertthunder/garden",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 25,
                    "byteStart": 21
                  },
                  "features": [
                    {
                      "uri": "https://desertthunder.github.io/garden/",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "Digital Garden (code/site)"
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 66,
                    "byteStart": 60
                  },
                  "features": [
                    {
                      "uri": "https://github.com/HiDeoo/starlight-links-validator",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "I fixed the links in my digital garden by using a validator plugin. I also changed the theme to something more my style. Soon I'll be able to remove that remodeling warning/admonition."
            }
          },
          {
            "$type": "pub.leaflet.pages.linearDocument#block",
            "block": {
              "$type": "pub.leaflet.blocks.text",
              "facets": [
                {
                  "index": {
                    "byteEnd": 52,
                    "byteStart": 37
                  },
                  "features": [
                    {
                      "uri": "https://desertthunder.github.io/garden/programming/functional_programming/hindley_milner/",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                },
                {
                  "index": {
                    "byteEnd": 94,
                    "byteStart": 88
                  },
                  "features": [
                    {
                      "uri": "https://desertthunder.github.io/garden/engineering/general/osc-10-11/",
                      "$type": "pub.leaflet.richtext.facet#link"
                    }
                  ]
                }
              ],
              "plaintext": "There's some new unfinished notes on hm type systems. The OSC stuff above is also in my garden"
            }
          }
        ]
      }
    ]
  },
  "bskyPostRef": {
    "cid": "bafyreidjpciz2x3gfiy3acohuihcim6ed5jg7ness5f6pzn2oai2o57efy",
    "uri": "at://did:plc:xg2vq45muivyy3xwatcehspu/app.bsky.feed.post/3m5wtjs2tcc2g",
    "commit": {
      "cid": "bafyreihj2nuexcuj6xxar7kbcyvgatkkj2edvuilipxgv2qkpeifm6ii54",
      "rev": "3m5wtjs6fxn2s"
    },
    "validationStatus": "valid"
  },
  "description": "Feedback is a gift",
  "publishedAt": "2025-11-18T22:56:18.957Z"
}