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 +38 -2
- package/README.md +16 -15
- package/dashboard/assets/index-78KgNO32.js +20 -0
- package/dashboard/assets/{index-CWTMVR9T.css → index-BSKA3LqW.css} +1 -1
- package/dashboard/index.html +2 -2
- package/dist/{index-3npyta7k.js → index-eyb4mz5b.js} +185 -8
- package/dist/index.js +112 -55
- package/dist/{mcp-s6gapf6v.js → mcp-4dnef2t7.js} +1 -1
- package/docs/commands.md +94 -0
- package/docs/configuration.md +64 -0
- package/docs/dashboard.md +75 -0
- package/docs/mcp.md +78 -0
- package/package.json +2 -10
- package/dashboard/assets/index-BVj35bds.js +0 -20
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
|
-
|
|
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
|
-
"
|
|
54
|
-
{ "name": "api", "run": "npm run dev:api"
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
-
|
|
145
|
-
-
|
|
146
|
-
-
|
|
147
|
-
-
|
|
148
|
-
-
|
|
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
|
|
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`.
|