Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
7e2e021
refactor(MoonCats): sidebar labels show classes without namespace
line0 Jul 23, 2026
4c9e9c3
fixup! refactor(MoonCats): sidebar labels show classes without namespace
line0 Jul 23, 2026
9b29433
feat(MoonCats,docs): mermaid diagrams, light/dark theme, and MoonScri…
line0 Jul 23, 2026
ac8d80d
refactor(Updater): move UpdateTask re-export to root level
line0 Jul 23, 2026
9831522
docs: add prose for domain enums
line0 Jul 23, 2026
f139729
refactor(MoonCats): treat table-module enums as first-class exports
line0 Jul 23, 2026
d478e66
fix(MoonCats): link table-module type cells via their declared @class…
line0 Jul 23, 2026
e05372a
fix(hash): improperly prefixed private method
line0 Jul 23, 2026
ea4b887
test: load shared helpers via requireTest for Aegisub suites
line0 Jul 23, 2026
a8ddf51
docs: add a few missing type annotations
line0 Jul 23, 2026
b8d31a2
refactor(UpdateTask): use literal ContextCeiling enum values instead …
line0 Jul 23, 2026
a5c0432
fix(MoonCats): empty and interpolated string not type-identified as such
line0 Jul 23, 2026
8cccf30
refactor(MoonCATS): type setmetatable returns as table rather than any
line0 Jul 23, 2026
8ce8042
docs: annotate public FFI availability flags with concrete types
line0 Jul 23, 2026
b31d9ab
feat(MoonCats): resolve computed enum keys that reference another enum
line0 Jul 23, 2026
d04110f
docs: clarify prerequisites
line0 Jul 23, 2026
d39f1ea
feat(MoonCats): resolve enum-member references in value position too
line0 Jul 23, 2026
d0e2f48
docs: make README chapters consistent
line0 Jul 23, 2026
61d202b
fix(MoonCats): type table-literal references and skip __class augment…
line0 Jul 23, 2026
b0639cd
docs: type three cross-module data members that inference can't reach
line0 Jul 23, 2026
40005f1
fix(Logger,utils): seed the rng per Lua state so concurrent scripts d…
line0 Jul 23, 2026
cd31db7
fix: clearer registerMacro error and empty install dropdowns on macOS
line0 Jul 23, 2026
80bea83
refactor: extract PATH manipulation from aegisub shims to DepCtrl utils
line0 Jul 23, 2026
d86b9da
test: make it possible to launch a mock HTTP server from Aegisub
line0 Jul 23, 2026
b350c54
feat(UpdateFeed): library method and CLI command for emitting a resol…
line0 Jul 23, 2026
f2a613d
feat(CLI): add serve-updates command for local update smoke testing
line0 Jul 23, 2026
d2af794
refactor(release): serve the feed and schemas from `publish`, not `ma…
line0 Jul 24, 2026
93316b9
fix(feed): template markers in prose breaking legacy DepCtrl v0.6.x
line0 Jul 24, 2026
1d1cd32
build: declare DepCtrls dependency on dkjson
line0 Jul 24, 2026
4ad7cab
docs(README): fix missing braces and improve formatting of code samples
line0 Jul 24, 2026
b027dde
fix(ModuleLoader): evict submodule cache on reload
line0 Jul 24, 2026
5cc216e
fix(PackageRecord,dkjson): test failures due to incomplete record reg…
line0 Jul 24, 2026
f349ed7
test(dkjson): give the wrapper its own package test suite
line0 Jul 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .cspell/project.txt
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@ hashtable
headlessly
HKLM
INCDIR
inlinehilite
inspectable
intedit
jsontype
Expand All @@ -56,6 +57,7 @@ launchable
ldoc
leafo
libaegisub
linenums
linkified
linkify
lpeg
Expand Down Expand Up @@ -96,6 +98,7 @@ phoscity
pkgs
PreciseTimer
prereq
pymdownx
refetch
refetched
refetches
Expand All @@ -112,6 +115,7 @@ rvars
settimeout
shouty
stdlib
superfences
Tbls
templater
tmpl
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# Release DependencyControl itself: a thin caller over the reusable publish-release workflow (the same
# building block third-party package repos use), mapping this repo's channel layout onto its inputs.
# `main` is the dev/default branch; `master` is the protected publish branch that serves the feed URL
# (…/DependencyControl/master/DependencyControl.json) and the schema $id URLs.
# `main` is the dev/default branch; `publish` is the protected publish branch that serves the feed URL
# (…/DependencyControl/publish/DependencyControl.json) and the schema $id URLs.
#
# Pushing to protected `master`/`main` and their tags uses a GitHub App on their bypass lists, wired
# Pushing to protected `publish`/`main` and their tags uses a GitHub App on their bypass lists, wired
# through the DEPCTRL_CI_APP_CLIENT_ID variable and DEPCTRL_CI_APP_PRIVATE_KEY secret. With those unset
# the run falls back to GITHUB_TOKEN, usable only while the branches are unprotected (e.g. a dry-run
# before locking them down). See the README's "Release Automation → Branch protection" for App setup.
Expand Down Expand Up @@ -44,7 +44,7 @@ jobs:
stable-channel: stable
release-channels: stable # cut a GitHub Release for stable versions only (not alpha)
dev-branch: main
publish-branch: master # historical: our feed URL is on master
publish-branch: publish
depctrl-ref: ${{ github.event.inputs.ref }} # release DepCtrl with its own CLI at that ref
app-client-id: ${{ vars.DEPCTRL_CI_APP_CLIENT_ID }}
secrets:
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
/ctrf/*.json
/dist/
/DependencyControl-*.zip
# resolve-feed output (the one-time master upgrade feed); pushed to master by hand, never to main/publish
/DependencyControl.resolved.json
/types/
# generated API reference (the rest of docs/ is committed source); mkdocs build output
/docs/reference/
Expand Down
11 changes: 10 additions & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,16 @@ These are prose habits common in AI output but rare in human contributors', so t
```

- **WR3.** Prefer natural language over backticked identifier names in prose. A declared `---@param feedUrl` reads as "the given feed URL", not "`feedUrl`"; drop reflexive "(see `otherMethod`)" pointers. Reserve backticks for when the exact name is what the caller acts on — a config key they set (`extraFeeds`), an enum value the result equals, a field they inspect (`stats.truncated`) — not as an echo of a declared parameter. LuaCATS has no inline link syntax, so a backticked name is just literal clutter.
- **WR4.** Clustered punctuation is a smell — in `--` comments, doc comments, and Markdown alike. No single mark is banned, but when parentheses, semicolons, colons, and em dashes pile up in one sentence, reorganize it. Watch for a semicolon nested inside a parenthetical, stacked parentheticals, an em-dash aside in a clause that already carries parens or a semicolon, a closing paren shoved against a semicolon, or a `label:` headline hung off a colon. The fix is one aside per sentence.
- **WR4.** Clustered punctuation is a smell — in `--` comments, doc comments, and Markdown alike. No single mark is banned, but when parentheses, semicolons, colons, and em dashes pile up in one sentence, reorganize it. Watch for a semicolon nested inside a parenthetical, stacked parentheticals, an em-dash aside in a clause that already carries parens or a semicolon, or a closing paren shoved against a semicolon. The fix is one aside per sentence.
- **WR5.** Keep annotation prose short. A doc comment **SHOULD** default to one line, gaining a second only for a genuinely separate contract (a precondition, a side effect), never to pad.
- **WR6.** Don't manufacture detail to fill space. The summary and the `---@return` **MUST NOT** be padded with invented specifics to force a difference between them; a concise `@return` shape label that echoes the summary is fine.
- **WR7.** A comment **MUST** stay inside the method it documents — state this call's contract, not what another method does ("(run acquires the lock first)").
- **WR8.** Never front a comment or sentence with a `label:` colon that reads like a blog subhead. The tell is a short topic label, then a colon, then the real point standing in as the subhead's body, as in `next, not pairs: a subclass has no instance to iterate`. Write the point as a plain sentence. A `label:` headline is a smell in its own right, distinct from WR4 clustering — it is wrong even as the only punctuation on the line. Colons that genuinely introduce a list or an appositive are fine.

```moon
-- BAD — a label: headline standing in for the sentence:
-- next, not pairs: a subclass has no instance to iterate

-- GOOD — a plain sentence:
-- iterate a class base with next, not pairs, since a subclass has no instance
```
Loading
Loading