@whoz-oss/coday-web 0.0.0-workstream-forge.214 → 0.0.0-workstream-forge.216

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +31 -29
  2. package/package.json +4 -4
package/README.md CHANGED
@@ -114,9 +114,8 @@ manifest calling `coday-server provision|agentos|factory|server|status`.
114
114
  That is the only address you ever need. The Factory cockpit is on the same address, under `/factory/` (for example
115
115
  http://localhost:3000/factory/). Every other port is internal: Coday uses it, you never type it.
116
116
 
117
- If the terminal says Coday started on another address (for example `Coday starts on block 3020:
118
- http://localhost:3020/`), a port was already taken by another program: open the address it prints. Nothing needs to be
119
- stopped or disabled. See *When a port is taken* below.
117
+ If the terminal says a port is already in use, another program holds it: Coday refuses to start and names it. See *When a
118
+ port is taken* below.
120
119
 
121
120
  Every start prints the addresses, for example:
122
121
 
@@ -155,26 +154,28 @@ Easy to remember: **3xxx is packaged Coday, 4xxx is development.** In dev, 4001
155
154
 
156
155
  #### When a port is taken
157
156
 
158
- Coday never asks you to stop or disable anything.
159
-
160
- - **npx, `coday-web` and `web:local`**: if any port of the block is taken, the **whole stack** moves to the next free
161
- block of its profile and prints the new address once:
162
- `Port 3000 is in use (by node, pid 4242), Coday starts on block 3020: http://localhost:3020/`.
163
- - prod tries 3000, 3020, 3040 … up to 3980;
164
- - local tries 3010, 3030, 3050 … up to 3990;
165
- - the two never land on the same block, so a `coday-web` and a `web:local` always run side by side.
166
-
167
- The block chosen is remembered (`runtime/state.json`, `portBlock`) and tried first at the next start, so the address
168
- stays the same from one start to the next as long as it is free.
169
- - **`scripts/web-dev-tmux.sh`**: takes the first free block among 4000, 4010, 4020 … so several worktrees run side by
170
- side.
171
- - **`pnpm web:serve:dev`**: its ports are written in Nx and Angular config files, which cannot follow a move. It stops
172
- at once with a message naming the port and the program holding it. Stop that program, or use the tmux script.
157
+ The ports are **always the same** for a given way of running Coday: the redirect URIs registered at OAuth providers
158
+ (allowlists) are tied to them, so Coday never moves to other ports by itself.
159
+
160
+ - **npx, `coday-web`, `web:local` and `pnpm web:serve:dev`**: if any port the stack uses (Express, AgentOS, Neo4j Bolt,
161
+ Factory) is taken, Coday **refuses to start** and prints one line naming the port and, when it can find it, the
162
+ program holding it (on macOS, 5000 and 7000 come with an AirPlay Receiver hint):
163
+ `Port 3000 is already in use (by node, pid 4242). Stop what uses it or choose another port (PORT=<n>, or CODAY_PORT_BASE=<n> for a whole block).`
164
+ Stop that program and start again.
165
+ - If you really need other ports, choose them explicitly (see *Choosing the ports yourself*), knowing that the redirect
166
+ URIs registered at your OAuth providers are tied to the default ports and will have to be registered again.
167
+ - **`scripts/web-dev-tmux.sh`**: a helper that picks the first free block among 4000, 4010, 4020 … for itself, so
168
+ several worktrees run side by side; it then starts the stack on that block explicitly (`CODAY_PORT_BASE`).
169
+ - **`pnpm web:serve:dev`**: its ports are written in Nx and Angular config files, which cannot follow a move. Same
170
+ rule: it stops at once with a message naming the port and the program holding it. Stop that program, or use the
171
+ tmux script.
172
+
173
+ `runtime/state.json` records the block of the last start (`portBlock`) for information only: it never influences the
174
+ choice.
173
175
 
174
176
  #### Choosing the ports yourself
175
177
 
176
- An explicit choice is **strict**: if the port is taken, Coday stops with a message naming the port and, when it can find
177
- it, the program holding it, instead of moving.
178
+ An explicit choice is just as strict: if the port is taken, Coday stops with the same message.
178
179
 
179
180
  | To | Use |
180
181
  |---|---|
@@ -239,10 +240,10 @@ existing installs without a wizard identity keep their previous behaviour: no wi
239
240
  | `--host <addr>` / `CODAY_HOST` | Interface Express listens on (default `127.0.0.1`; `0.0.0.0` with `--auth`) |
240
241
  | `--managed` / `CODAY_NO_NX=1` | Force the single-process mode (no Nx) |
241
242
  | `--no-open` / `CODAY_NO_OPEN=1` | Do not open the browser on start (only Nx mode opens it; never with `--auth`, a non-loopback host or `CI`) |
242
- | `PORT` | Express port, **strict** when set (default: the first free block of the profile, see *Ports*) |
243
- | `CODAY_PORT_BASE` | Pin the stack on this port block (**strict**, no block fallback); unset: the profile picks and falls back (see *Ports*) |
244
- | `CODAY_PORT_PROFILE=prod\|local\|dev` | Profile whose candidate blocks are used (set to `local` by `web:local`); derived from `BUILD_ENV` otherwise. Not an explicit choice: stays non-strict |
245
- | `CODAY_AGENTOS_PORT`, `CODAY_FACTORY_PORT`, `CODAY_AGENTOS_BOLT_PORT` | Port of the managed AgentOS, Factory and AgentOS Bolt instead of the block's (strict) |
243
+ | `PORT` | Express port instead of the one of the block (default: the first block of the profile, always the same, see *Ports*). Taken: Coday refuses to start |
244
+ | `CODAY_PORT_BASE` | Use this port block instead of the default one of the profile. Taken: Coday refuses to start (no block fallback). Redirect URIs registered at OAuth providers are tied to the default ports |
245
+ | `CODAY_PORT_PROFILE=prod\|local\|dev` | Profile whose default block is used (set to `local` by `web:local`); derived from `BUILD_ENV` otherwise |
246
+ | `CODAY_AGENTOS_PORT`, `CODAY_FACTORY_PORT`, `CODAY_AGENTOS_BOLT_PORT` | Port of the managed AgentOS, Factory and AgentOS Bolt instead of the block's (taken: Coday refuses to start) |
246
247
  | `AGENTOS_URL`, `FACTORY_URL` | Use an external AgentOS / Factory instead of managed ones. A service that is external has no pane in the Nx run (nothing to run); the `status` pane still reports it |
247
248
  | `CODAY_NO_FACTORY=1` | Leave the managed Factory out: no `factory` pane in the Nx run, it is neither downloaded nor started, `/api/factory` is not proxied, and the wizard and the loading page do not mention it. An external `FACTORY_URL` is still used |
248
249
  | `--profile unmanaged\|managed` / `CODAY_PROFILE` | Force the profile instead of deriving it (the flag wins over the env var). E.g. a dev server (`AGENTOS_URL`) started on the configDir of a running `coday-web` with `--profile unmanaged` keeps forwarding the wizard identity to that AgentOS. An external AgentOS on an already provisioned configDir never rewrites `runtime/state.json` (ports, progress) in the single-process mode, except for this profile |
@@ -262,7 +263,7 @@ pnpm nx run web:local # everyday: build local code, run it l
262
263
  pnpm nx run web:local -- --fresh # test the first-run wizard again (deletes the local config first)
263
264
  pnpm nx run web:local -- --managed # single process, plain console (instead of the Nx TUI)
264
265
  pnpm nx run web:local -- --no-open # do not open the browser (every restart would otherwise open a tab)
265
- pnpm nx run web:local -- --port 3100 # pin the Express port (strict: taken, the run fails)
266
+ pnpm nx run web:local -- --port 3100 # choose the Express port (taken: the run fails)
266
267
  ```
267
268
 
268
269
  The first time you get the wizard; afterwards the loading page and then the app, on the instance you configured, so you can stop,
@@ -287,12 +288,12 @@ lies in, them, your home or the repository), and nothing is published.
287
288
  | Option / env | Effect |
288
289
  |---|---|
289
290
  | `--fresh` | Delete `config/` and `files/` (printed) before starting: a brand-new first run |
290
- | `--managed`, `--port <n>` | Single-process mode, Express port (strict when given). Without `--port` the stack takes the first free LOCAL block, 3010 then 3030, 3050... (prod has 3000, 3020...: never the same block) and says which |
291
+ | `--managed`, `--port <n>` | Single-process mode, Express port (taken: the run fails). Without `--port` the stack uses the LOCAL block 3010 (prod has 3000: never the same block) and fails, naming the process, when one of its ports is taken |
291
292
  | `--no-open` | Do not open the browser (also `CODAY_NO_OPEN=1`) |
292
293
  | `--prepare-only` | Prepare everything, print the paths as JSON on the last line, no server |
293
294
  | `--clean` | Delete the **whole** root when the server stops (setup and data included) |
294
295
  | `CODAY_LOCAL_DIR=<dir>` | Use another root than `~/.coday-local` (`CODAY_FIRST_RUN_DIR` is a deprecated alias) |
295
- | `CODAY_PORT_BASE=<n>` | Pin the stack on this port block (strict: a second checkout side by side, e.g. a block of the 3xxx range your prod and local do not use) |
296
+ | `CODAY_PORT_BASE=<n>` | Use this port block instead of 3010 (taken: the run fails; e.g. a second checkout side by side, on a block of the 3xxx range your prod and local do not use) |
296
297
 
297
298
  `web:first-run` is kept as an alias of `web:local -- --fresh`.
298
299
 
@@ -351,5 +352,6 @@ than the former thin launcher. Versions of the `platform:npm` packages move in l
351
352
  cause. With an external `AGENTOS_URL`, check that URL answers on `/management/health`. (Opening `/` yourself
352
353
  meanwhile shows a blank page for up to 90 s, the app waits for AgentOS.)
353
354
  - **Java missing or too old**: install Java 25 (the wizard shows the command), the page continues by itself.
354
- - **Port already in use**: the packaged stack moves to the next free block by itself and says so; to choose, `PORT=3100
355
- npx @whoz-oss/coday-web` (strict, see *Ports*).
355
+ - **Port already in use**: Coday keeps the same ports on purpose (OAuth redirect URI allowlists are tied to them), so it
356
+ refuses to start and names the program holding the port. Stop it, or choose other ports explicitly
357
+ (`PORT=3100 npx @whoz-oss/coday-web`, or `CODAY_PORT_BASE=<n>` for a whole block; see *Ports*).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@whoz-oss/coday-web",
3
- "version": "0.0.0-workstream-forge.214",
3
+ "version": "0.0.0-workstream-forge.216",
4
4
  "repository": "https://github.com/whoz-oss/coday",
5
5
  "type": "module",
6
6
  "bin": {
@@ -13,9 +13,9 @@
13
13
  ],
14
14
  "dependencies": {
15
15
  "nx": "23.1.1",
16
- "@whoz-oss/coday-client": "0.0.0-workstream-forge.214",
17
- "@whoz-oss/coday-factory-cockpit": "0.0.0-workstream-forge.214",
18
- "@whoz-oss/coday-server": "0.0.0-workstream-forge.214"
16
+ "@whoz-oss/coday-factory-cockpit": "0.0.0-workstream-forge.216",
17
+ "@whoz-oss/coday-client": "0.0.0-workstream-forge.216",
18
+ "@whoz-oss/coday-server": "0.0.0-workstream-forge.216"
19
19
  },
20
20
  "engines": {
21
21
  "node": ">=22"