localdeck 1.0.0 → 1.0.2

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,43 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.0.2 — Request inspection and automatic crash recovery
4
+
5
+ ### Request inspection
6
+
7
+ - Restore request inspection and GET/HEAD replay in the dashboard, with separate View requests and View logs actions on services and project pages.
8
+ - Add persistent Requests and Logs controls to the bottom bar. Switch views directly while retaining selected service sources.
9
+ - Expand or collapse request details by clicking anywhere on a request row. Add full-row hover and keyboard focus highlights, while retaining keyboard button access.
10
+ - Organize details in one column with Request headers, Response headers, Query parameters, Cookies, and Body sections, all collapsed by default.
11
+ - Capture original HTTP request and response headers, preserving duplicate headers and Set-Cookie attributes. Limit each direction to 100 headers or 16 KiB.
12
+ - Capture original request and response body previews up to 16 KiB per direction without buffering the full transfer. Show incomplete and truncated transfers explicitly.
13
+ - Decode complete gzip, deflate, and Brotli bodies within the preview limit. Display binary or undecodable compressed data as Base64.
14
+ - Show request cookies, response cookies, and repeated query parameters. Preserve captured values in local request history; older records explicitly identify missing capture data.
15
+ - Display replay responses inside Body. Replay remains restricted to GET/HEAD, sends no original cookies, authorization, or body, and keeps response-size and timeout limits.
16
+
17
+ ### Automatic crash recovery
18
+
19
+ - Retry unexpectedly exited dashboard-managed and terminal-managed services up to three times, waiting three seconds before each attempt.
20
+ - Cancel pending retries on Stop, Stop all, Ctrl-C, or daemon shutdown. Require a manual start after the retry budget is exhausted.
21
+ - Log each retry attempt and preserve the underlying crash error when the restart limit is reached.
22
+ - Clean up the previous process tree before retrying, guard readiness checks against stale processes, and revalidate upstream ownership when a terminal service changes PID.
23
+
24
+ ### Documentation and validation
25
+
26
+ - Document request capture limits, local storage of captured headers and cookies, replay behavior, and automatic restart semantics.
27
+ - Add coverage for bounded body and header capture, duplicate cookies, compressed and interrupted transfers, retry limits, cancellation, and request metadata rendering.
28
+
29
+ ## 1.0.1 — Routing and packaging fixes
30
+
31
+ ### Fixes
32
+
33
+ - Keep health checks on the detected IPv4 or IPv6 listener, preventing routing to another project using the same port on a different loopback address. Ignore stale health-check results after an upstream change.
34
+ - Run platform-independent forwarder checks on Linux and macOS; restrict native plutil validation to macOS.
35
+
36
+ ### Documentation and packaging
37
+
38
+ - Remove private repository links from npm metadata and the README. Include configuration, command, dashboard, and MCP documentation in the package.
39
+ - Align the README configuration example with the commands array generated by localdeck init and remove the assumed health endpoint.
40
+
3
41
  ## 1.0.0 — Product launch
4
42
 
5
43
  ### Project setup and configuration
@@ -12,8 +50,6 @@
12
50
 
13
51
  ### Runtime and networking
14
52
 
15
- - Keep health checks on the detected IPv4 or IPv6 listener, preventing routing to another project using the same port on a different loopback address. Ignore stale health-check results after an upstream change.
16
-
17
53
  - Run existing development commands through a background daemon, with stable public ports and automatic upstream listener detection.
18
54
  - Add native Windows process and TCP listener discovery through PowerShell, plus a dedicated Windows networking CI job. Remove built-in Windows/Linux forwarding without invoking the macOS installer.
19
55
  - Provide project-qualified service identities and nickname-based localhost URLs. Reject ambiguous bare service names instead of selecting the wrong project.
package/README.md CHANGED
@@ -45,19 +45,21 @@ The dashboard is served at `http://localhost:7777` by default. It remembers proj
45
45
 
46
46
  ## Configure your services
47
47
 
48
- Create a `.localdeck` file in your project root, or edit the one generated by `init`:
48
+ Run `localdeck init` in your application's directory. It detects your package scripts and writes `.localdeck` using a `commands` array. You can then edit the generated commands or add a project nickname in the dashboard.
49
+
50
+ For example, a project with `dev:api` and `dev:web` scripts can use:
49
51
 
50
52
  ```json
51
53
  {
52
54
  "nickname": "platform",
53
- "services": [
54
- { "name": "api", "run": "npm run dev:api", "ready": "/health" },
55
+ "commands": [
56
+ { "name": "api", "run": "npm run dev:api" },
55
57
  { "name": "web", "run": "npm run dev:web", "after": "api" }
56
58
  ]
57
59
  }
58
60
  ```
59
61
 
60
- Replace the commands and health endpoint with your project's values. `after` starts the API before the web service and waits for readiness. Omit `ready` to use the default TCP check.
62
+ Use script names that exist in your project. Here, `after` is an optional customization: it starts the API first and waits for its default TCP readiness check before starting web. Add an HTTP `ready` check only if your app exposes that endpoint.
61
63
 
62
64
  For a non-JavaScript service:
63
65
 
@@ -67,7 +69,7 @@ localdeck init --name web --command 'python3 -m http.server {port}'
67
69
 
68
70
  LocalDeck supplies `PORT` and expands `{port}` to the application's upstream port. It can also detect listening ports on macOS, Linux, and Windows. Configure `upstream` explicitly when detection is unavailable. The optional `port` field is the stable proxy port, not the port your development server should bind.
69
71
 
70
- See [configuration](https://github.com/AdstraliaDev1/local-deck/blob/main/docs/configuration.md) for working directories, profiles, environment references, database services, and advanced readiness checks.
72
+ See configuration (included as `docs/configuration.md`) for working directories, profiles, environment references, database services, and advanced readiness checks.
71
73
 
72
74
  ## Everyday commands
73
75
 
@@ -84,7 +86,7 @@ See [configuration](https://github.com/AdstraliaDev1/local-deck/blob/main/docs/c
84
86
  | `localdeck unshare web` | Close the share while keeping the service running. |
85
87
  | `localdeck --h` / `localdeck --v` | Show help / version. |
86
88
 
87
- When projects have the same service name, use `project/service` or the exact key shown by `localdeck ps`. See the [full command reference](https://github.com/AdstraliaDev1/local-deck/blob/main/docs/commands.md).
89
+ When projects have the same service name, use `project/service` or the exact key shown by `localdeck ps`. See the full command reference (included as `docs/commands.md`).
88
90
 
89
91
  ## Share over HTTPS
90
92
 
@@ -107,7 +109,7 @@ Enable **Clean URLs** in Settings, or use the prompt above the dashboard footer.
107
109
 
108
110
  CORS still belongs to your application. `http://localhost:3001`, `http://platform.web.localhost`, and a public HTTPS tunnel URL are different browser origins. Add the frontend origin you actually visit to your API's allowlist. LocalDeck does not rewrite CORS policies or application API URLs.
109
111
 
110
- Windows process discovery and an administrator forwarder are implemented. Windows UAC installation, removal, and reboot persistence still need manual validation on Windows; see [platform details](https://github.com/AdstraliaDev1/local-deck/blob/main/docs/dashboard.md#windows).
112
+ Windows process discovery and an administrator forwarder are implemented. Windows UAC installation, removal, and reboot persistence still need manual validation on Windows; see platform details (included as `docs/dashboard.md`).
111
113
 
112
114
  ## Connect a coding agent
113
115
 
@@ -124,7 +126,7 @@ Add LocalDeck to an MCP client's server configuration:
124
126
  }
125
127
  ```
126
128
 
127
- Use `localdeck mcp --project <id>` to restrict access to one remembered project. See [MCP setup and tools](https://github.com/AdstraliaDev1/local-deck/blob/main/docs/mcp.md).
129
+ Use `localdeck mcp --project <id>` to restrict access to one remembered project. See MCP setup and tools (included as `docs/mcp.md`).
128
130
 
129
131
  ## Troubleshooting
130
132
 
@@ -141,13 +143,12 @@ Use `localdeck mcp --project <id>` to restrict access to one remembered project.
141
143
 
142
144
  ## Documentation
143
145
 
144
- - [Configuration](https://github.com/AdstraliaDev1/local-deck/blob/main/docs/configuration.md)
145
- - [CLI reference](https://github.com/AdstraliaDev1/local-deck/blob/main/docs/commands.md)
146
- - [Dashboard and platform support](https://github.com/AdstraliaDev1/local-deck/blob/main/docs/dashboard.md)
147
- - [MCP integration](https://github.com/AdstraliaDev1/local-deck/blob/main/docs/mcp.md)
148
- - [Development](https://github.com/AdstraliaDev1/local-deck/blob/main/docs/development.md) and [architecture](https://github.com/AdstraliaDev1/local-deck/blob/main/docs/architecture.md)
149
- - [Changelog](https://github.com/AdstraliaDev1/local-deck/blob/main/CHANGELOG.md) and [release instructions](https://github.com/AdstraliaDev1/local-deck/blob/main/docs/releasing.md)
146
+ - Configuration (included as `docs/configuration.md`)
147
+ - CLI reference (included as `docs/commands.md`)
148
+ - Dashboard and platform support (included as `docs/dashboard.md`)
149
+ - MCP integration (included as `docs/mcp.md`)
150
+ - Changelog (included as `CHANGELOG.md`)
150
151
 
151
152
  ## License
152
153
 
153
- Free for personal and commercial use, including building and selling your own products. You may not sell LocalDeck, charge for access to it, or claim it as your own product. Modification and redistribution require permission under the [custom proprietary license](https://github.com/AdstraliaDev1/local-deck/blob/main/LICENSE). Bundled dependencies retain their own licenses; the package includes `THIRD_PARTY_NOTICES.md`.
154
+ Free for personal and commercial use, including building and selling your own products. You may not sell LocalDeck, charge for access to it, or claim it as your own product. Modification and redistribution require permission under the custom proprietary license (included as `LICENSE`). Bundled dependencies retain their own licenses; the package includes `THIRD_PARTY_NOTICES.md`.