Skip to content

Release 0.2.4 — BUSL-1.1 relicense + clone-canonical front door + Node DOCX export#7

Merged
biggest-littlest merged 7 commits into
mainfrom
dev
Jun 26, 2026
Merged

Release 0.2.4 — BUSL-1.1 relicense + clone-canonical front door + Node DOCX export#7
biggest-littlest merged 7 commits into
mainfrom
dev

Conversation

@scttbnsn

Copy link
Copy Markdown
Contributor

Consolidated 0.2.4 readiness release. Three logical commits:

🔄 Drop the Python surface (build-docx port). The lone build-docx.py is gone. Its Helvetica / all-black / tight-spacing / narrow-margin / 11pt DOCX styling is ported into src/core/documents/export.mjs: a new makeReferenceDoc() builds a minimal reference.docx passed to pandoc via --reference-doc, and the same page margins + styles apply to the hand-rolled OOXML fallback. Zero runtime deps preserved. Smoke-tested real pandoc → docx → pdf (Helvetica + black confirmed in output styles.xml); 42/42 export tests green.

🔧 Relicense 0.2.4+ under BUSL-1.1. MIT → Business Source License 1.1 starting at 0.2.4. Source stays available; personal / non-commercial production use (including running your own job search) is granted; offering it as a hosted/commercial service is not. Auto-converts to Apache 2.0 on the 2030-06-26 Change Date. 0.2.0–0.2.3 stay MIT. Package license field + disclaimer copy updated to match. Version bumped 0.2.3 → 0.2.4.

📝 Clone-canonical front door. Rewrites getting-started across README, AGENTS.md, docs/SETUP.md, the website, and website/public/AGENTS.md to git clonenpm installnode bin/rolester.mjs start (the agent runs in-tree, so a global npm install would have no workspace). Removes stale pre-release / 0.0.0 / not-on-npm claims, documents node bin/rolester.mjs update, prints agent-CLI install hints when none is on PATH, and adds a fictional Forward Deployed AI Engineer sample JD (Thornfield Labs) for testers to paste.

Deferred to a follow-up (not in this PR): the two qlty security items (postcss CVE in website devDeps; persist-credentials: false hardening on the CI/CodeQL/publish workflows — held out deliberately so this release doesn't touch publish.yml mid-publish), the docs-site (Fumadocs) build, and the website Vercel redeploy.

CI: structure-guards required (green locally, 32/32 + 42/42 export). CodeQL + qlty informational.

CodesWhat added 6 commits June 26, 2026 16:25
actions/checkout@v4→v5, actions/setup-node@v4→v5, node-version 20→24 across
publish/ci/codeql. The v5 actions target Node 24 natively, so GitHub no longer
force-runs them on a deprecated Node-20 shim.
…ing)

- url-substring-sanitization: parse + exact hostname match (===/.endsWith) instead
  of bypassable url.includes("domain") — resume-parser, sourced-scanner,
  tracker-data, capture-search-sources (new hostnameMatches helper)
- double-escaping: single-pass replace in yaml.mjs unescape + sourced-scanner HTML
  entity decode (no cascade re-decode)
- incomplete-(multi-char-)sanitization: global/loop strip + escape the matched char
  ($&) — dashboard-data cleanContactName, packet, sourced-intake, sourced-delta
- bad-tag-filter: separate opening-tag attrs from content in the script-strip regex
- xss-through-dom: validate the logo base is an https URL before using it as img src

Dismissed 8 test-fixture alerts as 'used in tests'. 95/95 guard+parser tests green.
Security: 17 CodeQL high alerts resolved (URL/escape/XSS hardening) +
Actions bumped to v5 / Node 24 (clears the Node-20 deprecation).
… Python surface

Ports the Helvetica, all-black, tight-spacing, narrow-margin, 11pt styling from
the lone build-docx.py into src/core/documents/export.mjs so DOCX output matches
without a Python dependency. Adds makeReferenceDoc() to build a minimal
reference.docx passed to pandoc via --reference-doc, and applies the same page
margins and styles to the hand-rolled OOXML fallback. Removes build-docx.py.
Switches from MIT to Business Source License 1.1 starting at 0.2.4. Source stays
available, personal and non-commercial production use is granted, hosting it as
a commercial service is not. Converts to Apache 2.0 on the 2030-06-26 Change
Date. Versions 0.2.0 through 0.2.3 stay MIT. Updates the package license field
and the disclaimer copy to match.
…mple JD

Rewrites the getting-started path across README, AGENTS.md, docs/SETUP.md, the
website, and website/public/AGENTS.md to the clone-and-run install (git clone,
npm install, node bin/rolester.mjs start), since the agent runs in-tree so a
global npm install would not have a workspace. Removes stale pre-release, 0.0.0,
and not-on-npm claims, documents node bin/rolester.mjs update for keeping
current, prints agent-CLI install hints when none is on PATH, and adds a
fictional Forward Deployed AI Engineer sample JD for testers to paste.

@biggest-littlest biggest-littlest left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

0.2.4 looks good. build-docx port is clean (DOCX styling moved into export.mjs, no more Python dep), the BUSL-1.1 relicense is correct for 0.2.4+, and the clone-canonical front door fixes the install story for testers. structure-guards green.

@ALARGECOMPANY ALARGECOMPANY left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed the front-door copy, license change, and the Node DOCX export. LGTM.

@biggest-littlest biggest-littlest merged commit 711a9ae into main Jun 26, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants