| Age | Commit message (Expand) | Author |
| 23 hours | data: let secondary releases' artists differ from main release | (quasar) nebula |
| 23 hours | data, content: Track.artistTextInLists | (quasar) nebula |
| 25 hours | wiki-data: matchMarkdownLinks: use fuller-fat tokenizer.link() | (quasar) nebula |
| 27 hours | content, css: content-code overflow indicator | (quasar) nebula |
| 27 hours | css: content-code precision | (quasar) nebula |
| 27 hours | content, css: transformContent: fenced code blocks | (quasar) nebula |
| 2 days | content: gTIPPreviousProductionLine: fix missing list format | (quasar) nebula |
| 2 days | upd8: reportDirectoryErrors messaging | (quasar) nebula |
| 2 days | checks: reportDirectoryErrors: consider blank directory missing | (quasar) nebula |
| 2 days | search: aliasNames -> artistAliases | (quasar) nebula |
| 2 days | data: use subdocs for artist aliases | (quasar) nebula |
| 2 days | data: Thing.getReference: include name in missing directory throw | (quasar) nebula |
| 3 days | content, data: Track.previousProductionTracks | (quasar) nebula |
| 3 days | content: generateNearbyTrackList | (quasar) nebula |
| 3 days | content: generateTrackListItem: showArtists: 'auto' | (quasar) nebula |
| 3 days | html, infra: html.inside(), html.findInside() | (quasar) nebula |
| 3 days | language: preserve and surface lone-item templates | (quasar) nebula |
| 3 days | content: image: slight wiggle room in srcset natural sizes | (quasar) nebula |
| 3 days | content: image, generateCoverArtwork: responsive resolution | (quasar) nebula |
| 4 days | content: linkThing: fix not passing preferShortName through | (quasar) nebula |
| 5 days | content: transformContent: marked 13 compat, custom inline render | (quasar) nebula |
| 5 days | content: generateCommentaryIndexPage: use npm word-count instead | (quasar) nebula |
| 5 days | content: generateCommentaryIndexPage: count facing words | (quasar) nebula |
| 5 days | language: countWords() | (quasar) nebula |
| 5 days | html: resolve(..., {normalize: 'plain'}) | (quasar) nebula |
| 5 days | content: generate{Absolute,Relative}Datetimestamp: always tooltip | (quasar) nebula |
| 5 days | content: generateAbsoluteDatetimestamp: {minimal,year}-difference | (quasar) nebula |
| 5 days | language: formatMonthDay() | (quasar) nebula |
| 6 days | language: drop externalLinkSpec prop, just import directly | (quasar) nebula |
| 6 days | language: compositional withStrings, update strings_htmlEscaped | (quasar) nebula |
| 6 days | html, language: html.escape() | (quasar) nebula |
| 6 days | html: stricter escapeAttributeValue | (quasar) nebula |
| 6 days | content: drop 'he' module | (quasar) nebula |
| 6 days | no-source-change meaningfulish npm updates | (quasar) nebula |
| 6 days | pin node dependencies | (quasar) nebula |
| 6 days | add @eslint/js as explicit dependency, hopefully | (quasar) nebula |
| 6 days | content: gAIPArtworksChunkItem: only handle artwork contributions | (quasar) nebula |
| 6 days | content: gAIPArtworksChunkItem: "fix" album cover as track cover | (quasar) nebula |
| 11 days | content: generateListingPageSameTargetListingsLine | (quasar) nebula |
| 11 days | remove ignored package.json lines disabling tap coverage | (quasar) nebula |
| 11 days | test: update behavior of empty string in string slot | (quasar) nebula |
| 11 days | validators, test: permissive typeless validateReference() | (quasar) nebula |
| 11 days | test: validators: here we go again | (quasar) nebula |
| 11 days | test: update mini CacheableObject constructor setups | (quasar) nebula |
| 11 days | test: update linkWikiDataArrays call | (quasar) nebula |
| 11 days | test: obliterate wholescale thing surface tests | (quasar) nebula |
| 11 days | sugar: make getNestedProp resilient against missing properties | (quasar) nebula |
| 11 days | test: remove #track withAlbum (unit) | (quasar) nebula |
| 11 days | cacheable-object: ugh, embarrassing... | (quasar) nebula |
| 11 days | test: remove withParsedCommentaryEntries (unit) | (quasar) nebula |