Add PlayGithub local subdomain route#1069
Conversation
| import type { Page } from "playwright"; | ||
|
|
||
| const PHOENIX_ORIGIN = "https://localhost:4002"; | ||
| const PHOENIX_ORIGIN = "https://frontman.local:4002"; |
| alias FrontmanServer.PlayGithub.GithubReference | ||
| alias FrontmanServer.PlayGithub.RepositorySandbox | ||
|
|
||
| @frontman_install_command "npx astro add @frontman-ai/astro --yes" |
There was a problem hiding this comment.
this is the install command for astro.. we aren't going to introduce the abstraction for this yet?
| # Authenticated users in dev see a simple "you're signed in" page | ||
| # (avoids redirect loop with signed_in_path -> / -> /users/log-in). | ||
| # Authenticated users in dev see a simple "you're signed in" page. | ||
| # Do not redirect to sudo-only routes here; expired sudo sessions would loop. |
There was a problem hiding this comment.
what does this mean sudo sessions?
There was a problem hiding this comment.
there are some routes that we call "sudo" meaning they need you to auth even if you're authenticated as an extra security best-practice.
e.g things like changing your profile etc.
| "": { | ||
| "dependencies": { | ||
| "@opencode-ai/plugin": "1.14.32" | ||
| "@opencode-ai/plugin": "1.15.13" |
There was a problem hiding this comment.
hmm, we shouldn't commit this?
| alias FrontmanServer.PlayGithub.GithubReference | ||
| alias FrontmanServerWeb.PlayGithub.SandboxProxy.Target | ||
|
|
||
| @command_usage "?command=create|start|clone|install|dev" |
There was a problem hiding this comment.
this is kinda weird, why isn't this restful?
| end | ||
| end | ||
|
|
||
| defp next_step(%{provider_state: :starting}), do: "wait_for_daytona_start" |
There was a problem hiding this comment.
would be nice to move the state machine to its own module
| "error: unsupported_github_path\nsegments: #{Enum.join(segments, "/")}" | ||
| end | ||
|
|
||
| defp launch_page_html do |
There was a problem hiding this comment.
I think I added this, but should be moved to an elixir template file
|
|
||
| Target URL: https://frontman.sh/blog/best-frontend-coding-agent/ | ||
|
|
||
| Goal: boost SEO and GEO visibility for `best frontend coding agent`, `AI frontend coding agent`, `Cursor vs v0 vs Claude Code frontend`, `React AI coding agent`, and related comparison queries using real, indexable community discussion and proof. |
| @@ -0,0 +1,31 @@ | |||
| PR #1069 adds authenticated `playgithub.frontman.local` routing, GitHub-shaped path parsing, deterministic Daytona sandbox get-or-create by repo target, and repo cloning into relative `workspace`. | |||
Summary
hosts: []while leaving Daytona runtime env requiredDark launch / merge safety
playgithub.comis not enabled in prod config yetDAYTONA_API_KEYandDAYTONA_ORGANIZATION_IDplaceholdersTests
mix format --check-formatted config/prod.exs config/runtime.exs lib/frontman_server_web/play_github/sandbox_proxy_plug.ex lib/frontman_server_web/user_auth.exmix test test/frontman_server/play_github_test.exs test/frontman_server_web/play_github/controller_test.exs test/frontman_server_web/play_github/sandbox_proxy_test.exsMIX_ENV=prod DAYTONA_API_KEY=test DAYTONA_ORGANIZATION_ID=test CLOAK_KEY=... DISCORD_NEW_USERS_WEBHOOK_URL=... DATABASE_URL=... SECRET_KEY_BASE=... RESEND_API_KEY=... mix eval ...verified PlayGithub prod config loads ashosts: []