Skip to content

Remove Phoenix boilerplate and add MIT license#17

Merged
errantsky merged 14 commits intomainfrom
claude/prepare-public-release-ORbvZ
Feb 25, 2026
Merged

Remove Phoenix boilerplate and add MIT license#17
errantsky merged 14 commits intomainfrom
claude/prepare-public-release-ORbvZ

Conversation

@errantsky
Copy link
Owner

Summary

Clean up unused Phoenix generator artifacts, remove email/mailer functionality, and add MIT license for open-source distribution. This PR removes dead code that would confuse new contributors and simplifies the project structure.

Key Changes

Removed

  • PageController and PageHTML module — unused Phoenix generator leftovers
  • demo_run.exs — referenced missing priv/foodlab.epub file that would crash on clone
  • RLMWeb.Mailer and all Swoosh email configuration — no email functionality exists in the application
  • RLMWeb.channel/0 helper — no Phoenix channels used
  • /dev/mailbox route and related Swoosh configuration
  • .envrc file (added to .gitignore for local direnv preferences)

Added

  • MIT LICENSE file with copyright notice

Changed

  • API key logging now shows only last 4 characters (...XXXX) instead of first 12 for better security
  • Added @moduledoc to RLMWeb.Endpoint, RLMWeb.Router, RLMWeb.RunListLive, RLMWeb.RunDetailLive, and RLMWeb.Telemetry
  • Pre-commit hook now gracefully skips when mix is unavailable (CI/sandboxed environments)
  • Removed Swoosh dependency from mix.exs
  • Cleaned up mailer configuration from config/config.exs, config/dev.exs, config/prod.exs, and config/test.exs
  • Updated CLAUDE.md to reflect removed PageController

Implementation Details

  • The removal of email infrastructure reduces dependency bloat and clarifies that RLM is a backend library with a read-only dashboard, not a user-facing application
  • Pre-commit hook improvement prevents CI failures when mix is not in PATH
  • API key masking in logs follows security best practices for credential display

https://claude.ai/code/session_017daBoFtwa5WXqz76HA671w

This script would crash for anyone cloning the repo since the epub file
is not tracked in the repository.

https://claude.ai/code/session_017daBoFtwa5WXqz76HA671w
The stock Phoenix template with the Phoenix logo and links to Phoenix docs
is confusing for visitors to an RLM project.

https://claude.ai/code/session_017daBoFtwa5WXqz76HA671w
Previously logged the first 12 characters of the API key, which is
excessive. Showing only the last 4 is the industry-standard pattern
for confirming key presence without leaking material.

https://claude.ai/code/session_017daBoFtwa5WXqz76HA671w
PageController and PageHTML are not referenced in the router (/ uses
RunListLive). The channel/0 helper in RLMWeb has no channels in the
application. All are leftovers from the Phoenix project generator.

https://claude.ai/code/session_017daBoFtwa5WXqz76HA671w
No email functionality exists in the application. Swoosh, its Mailer
module, all config entries across dev/test/prod/runtime, and the
/dev/mailbox route were all leftovers from the Phoenix project generator.

https://claude.ai/code/session_017daBoFtwa5WXqz76HA671w
Adds concise module documentation to Endpoint, Router, RunListLive,
RunDetailLive, and Telemetry so ExDoc generates meaningful entries.

https://claude.ai/code/session_017daBoFtwa5WXqz76HA671w
.envrc is a local direnv preference file. Tracking it sets a precedent
for committing environment configuration that varies per developer.

https://claude.ai/code/session_017daBoFtwa5WXqz76HA671w
Adds changelog entries for all public-release prep changes. Also makes
the pre-commit hook skip gracefully when mix is not installed (e.g., in
CI or sandboxed environments) instead of blocking all commits.

https://claude.ai/code/session_017daBoFtwa5WXqz76HA671w
@errantsky errantsky force-pushed the claude/prepare-public-release-ORbvZ branch from 2bc1153 to 2dfdc17 Compare February 25, 2026 15:21
Documents that RLM executes arbitrary LLM-generated code with full
system access, so users understand the trust boundary before using it.

https://claude.ai/code/session_017daBoFtwa5WXqz76HA671w
Runs compile --warnings-as-errors, format --check-formatted, and test
on push/PR to main. Uses erlef/setup-beam with Elixir 1.19 / OTP 27
and caches deps/_build by mix.lock hash.

https://claude.ai/code/session_017daBoFtwa5WXqz76HA671w
Review caught that CLAUDE.md still listed mailer.ex in the project
structure tree, and RLMWeb's moduledoc still mentioned channels.

https://claude.ai/code/session_017daBoFtwa5WXqz76HA671w
The branded replacement page was created then deleted in the same PR,
so the net effect is just removal of dead PageController code — already
documented in the Removed section.

https://claude.ai/code/session_017daBoFtwa5WXqz76HA671w
These entries were left behind when the swoosh dependency was removed
from mix.exs. Equivalent to running mix deps.unlock --unused.

https://claude.ai/code/session_017daBoFtwa5WXqz76HA671w
The Grep tool and sandbox rg() wrapper depend on ripgrep. Without it,
the fallback grep only searches .ex/.exs files, causing 3 test failures
on .txt test fixtures.

https://claude.ai/code/session_017daBoFtwa5WXqz76HA671w
@errantsky errantsky merged commit 853b4fb into main Feb 25, 2026
1 check passed
@errantsky errantsky deleted the claude/prepare-public-release-ORbvZ branch February 25, 2026 15:51
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.

2 participants