- (opentower) Handler/agent factory architecture with standalone server by @MathurAditya724 in #90
- Add GitHub App configuration (env vars, coder template, triggers) by @MathurAditya724 in #91
- Make opentower app public for webhooks by @MathurAditya724 in #89
- Hardcode docker image to avoid variable caching by @MathurAditya724 in #88
- (coder-template) Add missing environment variables by @MathurAditya724 in #85
- Pin docker image and opentower dep to versioned tags by @MathurAditya724 in #86
- (dashboard) Add settings dialog for OpenCode URL configuration by @MathurAditya724 in #78
- (opentower) Lifecycle tools, run_once interval fix, bump concurrency by @MathurAditya724 in #77
- (docker) Build dashboard SPA in Dockerfile so opentower serves the UI by @MathurAditya724 in #75
- (opentower) Check linked issues for session affinity on PR events by @MathurAditya724 in #80
- (skills) Add outpost-tools reference for cron and lifecycle tools by @MathurAditya724 in #79
- Use latest versions for opencode plugin dependencies by @MathurAditya724 in #83
- Install opentower from npm instead of file: dep by @MathurAditya724 in #76
- Wait for CI workflow before publishing by @MathurAditya724 in #73
- Build dashboard before packing npm tarball by @MathurAditya724 in #71
- (opentower) Extract linked issues from email body for PR session reuse by @MathurAditya724 in #66
- Add cron scheduling system to opentower by @MathurAditya724 in #69
- Bundle dashboard into opentower for single-origin serving by @MathurAditya724 in #68
- (dashboard) Replace custom toast with sonner by @MathurAditya724 in #67
- Detect stale opencode-config-bun.lock by @MathurAditya724 in #57
- Relax email self-loop guard to only block comment loops by @MathurAditya724 in #65
- Improve skills architecture based on Sentry warden and junior-prod patterns by @MathurAditya724 in #63
- Refine email self-loop guard to allow CI and security notifications by @MathurAditya724 in #61
- Loosen entity resolver skip list so actionable emails get session affinity by @MathurAditya724 in #60
- Fix CI: pin @loreai/opencode to 0.12.0 to avoid broken transitive deps by @MathurAditya724 in #59
- Fix session URL routing to match OpenCode web UI structure by @MathurAditya724 in #58
- Add auto-merge skill and fix CORS for dashboard SPA by @MathurAditya724 in #55
- Store auto-share URLs for clickable OpenCode session links by @MathurAditya724 in #54
- Migrate forms to zod + react-hook-form by @MathurAditya724 in #52
- Fix sidebar dual-line artifact on rail hover by @MathurAditya724 in #51
- Dashboard: sidebar rail toggle, session links relative to server, TanStack Query, pagination by @MathurAditya724 in #50
- Dashboard: sidebar server management, emoji branding, and opencode session links by @MathurAditya724 in #49
- Fix CORS: apply middleware globally so /healthz is reachable from dashboard SPA by @MathurAditya724 in #48
- Rename my-opencode to outpost by @MathurAditya724 in #47
- Add OpenTower dashboard SPA and JSON API endpoints by @MathurAditya724 in #40
- Add explicit email triage rules for PR authorship checks by @MathurAditya724 in #45
- updated the service icons by @MathurAditya724 in 0dba58ef
- Fix agent init: interpolate init_script at plan time via heredoc by @MathurAditya724 in #44
- Remove ephemeral flag from Coder template secret parameters by @MathurAditya724 in #43
- Fix K8s template: remove command override to preserve image ENTRYPOINT by @MathurAditya724 in #42
- Add Coder workspace template (Kubernetes) by @MathurAditya724 in #41
- Add Coder workspace template by @MathurAditya724 in #31
- Remove ALLOWED_EMAILS env var — D1 allowlist is the single source of truth by @MathurAditya724 in #39