Add app runner for backend and discord stack
This commit is contained in:
@@ -242,7 +242,56 @@ delete or retire legacy bot behaviors that no longer fit once the backend split
|
||||
- cleanup updated user-facing deployment artifacts to match the v2 naming and architecture, including `DISCORD_BOT_TOKEN` and removal of `users.json` references
|
||||
- archived planning docs were intentionally left untouched: `pm/tasks.org` is historical and `pm/notes.org` is personal working notes
|
||||
|
||||
* [ ] 2.0.4: fix automation and build pipeline (3)
|
||||
* [ ] 2.0.4: make youdis.py app runner for backend + adapters (3)
|
||||
Build a simple Python orchestration layer in youdis.py so the standard app stack can be launched from one entrypoint while backend and adapters remain independently runnable for testing.
|
||||
|
||||
** pm notes
|
||||
- keep components independently runnable
|
||||
- youdis.py as app-level orchestrator; let Docker just run python3 /app/youdis.py
|
||||
- no plugin discovery or hot-loading
|
||||
- Docker should package and launch the app, not decide internal process topology
|
||||
- preserve the ability to run backend or adapters directly for debugging
|
||||
- optimize for one obvious default run path
|
||||
|
||||
** Acceptance Criteria
|
||||
1. define the default app startup path
|
||||
- youdis.py launches the standard stack for v2
|
||||
- backend and Discord adapter startup order is explicit
|
||||
- shutdown behavior is coherent enough for local/dev use
|
||||
2. preserve modular run paths
|
||||
- backend can still be run directly
|
||||
- Discord adapter can still be run directly
|
||||
- orchestration layer does not bury component-level testing
|
||||
3. keep orchestration simple
|
||||
- no dynamic adapter discovery
|
||||
- no hot reloading framework
|
||||
- configured components are started explicitly
|
||||
4. document runtime ownership
|
||||
- clarify what Python orchestrates vs what Docker orchestrates
|
||||
- identify env vars or flags that control which components start
|
||||
- leave room for future Zulip/XMPP adapters without redesigning the runner
|
||||
|
||||
** evidence
|
||||
- commit:
|
||||
- tests:
|
||||
1. `python3 -m py_compile ./youdis.py ./youdis/adapters/discord.py`
|
||||
2. backend direct run still works: `python3 -m uvicorn youdis.main:app --host 127.0.0.1 --port 8000`
|
||||
3. discord direct run still works: `python3 -m youdis.adapters.discord`
|
||||
4. app runner backend-only smoke test: `YOUDIS_RUN_DISCORD=0 timeout 5s python3 ./youdis.py`
|
||||
5. app runner default path: `python3 ./youdis.py`
|
||||
- date:
|
||||
|
||||
** notes
|
||||
- `youdis.py` is now the default v2 app runner and starts the standard stack explicitly rather than dynamically discovering adapters
|
||||
- backend starts first and must pass a health check before the Discord adapter is launched
|
||||
- backend and Discord adapter remain directly runnable for debugging and tests
|
||||
- Docker is intended to invoke `python3 /app/youdis.py`; Python owns app orchestration while Docker owns packaging and runtime environment
|
||||
- runner flags currently include `YOUDIS_RUN_BACKEND`, `YOUDIS_RUN_DISCORD`, `YOUDIS_BACKEND_HOST`, and `YOUDIS_BACKEND_PORT`
|
||||
|
||||
|
||||
* ==== BACKLOG ====
|
||||
Tasks below this line are inactive and should not be touched.
|
||||
* [ ] 2.0.X: fix automation and build pipeline (3)
|
||||
repair and simplify the build/update/deploy path so it matches the new backend-plus-frontend structure
|
||||
** pm notes
|
||||
- this should come after architecture and discord integration stabilize. no point polishing the pipeline for the wrong shape.
|
||||
@@ -267,8 +316,6 @@ repair and simplify the build/update/deploy path so it matches the new backend-p
|
||||
|
||||
** notes
|
||||
|
||||
* ==== BACKLOG ====
|
||||
Tasks below this line are inactive and should not be touched.
|
||||
* [ ] X.x.x: clean up discord adapter UI
|
||||
|
||||
** acceptance criteria
|
||||
|
||||
Reference in New Issue
Block a user