tidewave 0.4.0 → 0.4.1
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.
- checksums.yaml +4 -4
- data/README.md +16 -20
- data/lib/tidewave/railtie.rb +21 -0
- data/lib/tidewave/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d3375b13a00fb5b052a2bea5c6b720056379f16a26cc984ffde2973d2d2fca90
|
|
4
|
+
data.tar.gz: b5d7c9d2290e2273116712116fcb8336ddbc4009be187ca0413ec3c727b33e6b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6ad6d175fef2e61d40ab97de1bbf36bfaf3f37137ee7d54d6cc1f7987096e105e37381376e6f8263b70b31795065824b459225512d62e9ae5615c9dc098a8b2d
|
|
7
|
+
data.tar.gz: 2535c2570a69f70114705b2ec13f708b17bae00aefcaae504c97323c2c07edb3686a142d40f6a85f42a7619754f93fb8cbcd7267edcbb349fc621004f15c3ae2
|
data/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Tidewave
|
|
2
2
|
|
|
3
|
-
Tidewave is the coding agent for full-stack web app development,
|
|
3
|
+
Tidewave is the coding agent for full-stack web app development. Integrate Claude Code, OpenAI Codex, and other agents with your web app and web framework at every layer, from UI to database. [See our website](https://tidewave.ai) for more information.
|
|
4
4
|
|
|
5
5
|
This project can also be used as a standalone Model Context Protocol server for your editors.
|
|
6
6
|
|
|
@@ -12,12 +12,24 @@ You can install Tidewave by adding the `tidewave` gem to the development group i
|
|
|
12
12
|
gem "tidewave", group: :development
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
-
Now
|
|
15
|
+
Now make sure [Tidewave is installed](https://hexdocs.pm/tidewave/installation.html) and you are ready to connect Tidewave to your app.
|
|
16
16
|
|
|
17
17
|
## Troubleshooting
|
|
18
18
|
|
|
19
|
+
### Content security policy
|
|
20
|
+
|
|
21
|
+
If you have enabled Content-Security-Policy, Tidewave will automatically enable "unsafe-eval" under `script-src` in order for contextual browser testing to work correctly. It also disables the `frame-ancestors` directive.
|
|
22
|
+
|
|
23
|
+
### Production Environment
|
|
24
|
+
|
|
25
|
+
Tidewave is a powerful tool that can help you develop your web application faster and more efficiently. However, it is important to note that Tidewave is not meant to be used in a production environment.
|
|
26
|
+
|
|
27
|
+
Tidewave will raise an error if it is used in any environment where code reloading is disabled (which typically includes production).
|
|
28
|
+
|
|
19
29
|
### Localhost requirement
|
|
20
30
|
|
|
31
|
+
> This requirement only matters if you are not using the Tidewave app/CLI.
|
|
32
|
+
|
|
21
33
|
Tidewave expects your web application to be running on `localhost`. If you are not running on localhost, you may need to set some additional configuration. In particular, you must configure Tidewave to allow `allow_remote_access` and [optionally configure your Rails hosts](https://guides.rubyonrails.org/configuring.html#actiondispatch-hostauthorization). For example, in your `config/environments/development.rb`:
|
|
22
34
|
|
|
23
35
|
```ruby
|
|
@@ -27,33 +39,17 @@ config.tidewave.allow_remote_access = true
|
|
|
27
39
|
|
|
28
40
|
If you want to use Docker for development, you either need to enable the configuration above or automatically redirect the relevant ports, as done by [devcontainers](https://code.visualstudio.com/docs/devcontainers/containers). See our [containers](https://hexdocs.pm/tidewave/containers.html) guide for more information.
|
|
29
41
|
|
|
30
|
-
### Content security policy
|
|
31
|
-
|
|
32
|
-
If you have enabled Content-Security-Policy, Tidewave will automatically enable "unsafe-eval" under `script-src` in order for contextual browser testing to work correctly. It also disables the `frame-ancestors` directive.
|
|
33
|
-
|
|
34
|
-
### Web server requirements
|
|
35
|
-
|
|
36
|
-
At the moment, Tidewave requires all requests to be processed by the same process. In case Tidewave cannot connect to your application, consider starting your Rails application as follows:
|
|
37
|
-
|
|
38
|
-
RAILS_MAX_THREADS=1 WEB_CONCURRENCY=1 rails server
|
|
39
|
-
|
|
40
|
-
### Production Environment
|
|
41
|
-
|
|
42
|
-
Tidewave is a powerful tool that can help you develop your web application faster and more efficiently. However, it is important to note that Tidewave is not meant to be used in a production environment.
|
|
43
|
-
|
|
44
|
-
Tidewave will raise an error if it is used in any environment where code reloading is disabled (which typically includes production).
|
|
45
|
-
|
|
46
42
|
## Configuration
|
|
47
43
|
|
|
48
44
|
You may configure `tidewave` using the following syntax:
|
|
49
45
|
|
|
50
46
|
```ruby
|
|
51
|
-
config.tidewave.
|
|
47
|
+
config.tidewave.team = { id: "my-company" }
|
|
52
48
|
```
|
|
53
49
|
|
|
54
50
|
The following config is available:
|
|
55
51
|
|
|
56
|
-
* `allow_remote_access` - Tidewave only allows requests from localhost by default, even if your server listens on other interfaces
|
|
52
|
+
* `allow_remote_access` - Tidewave only allows requests from localhost by default, even if your server listens on other interfaces. If you trust your network and need to access Tidewave from a different machine, this configuration can be set to `true`
|
|
57
53
|
|
|
58
54
|
* `logger_middleware` - The logger middleware Tidewave should wrap to silence its own logs
|
|
59
55
|
|
data/lib/tidewave/railtie.rb
CHANGED
|
@@ -10,6 +10,27 @@ require "tidewave/quiet_requests_middleware"
|
|
|
10
10
|
gem_tools_path = File.expand_path("tools/**/*.rb", __dir__)
|
|
11
11
|
Dir[gem_tools_path].each { |f| require f }
|
|
12
12
|
|
|
13
|
+
# Temporary monkey patching to address regression in FastMCP
|
|
14
|
+
if Dry::Schema::Macros::Hash.method_defined?(:original_call)
|
|
15
|
+
Dry::Schema::Macros::Hash.class_eval do
|
|
16
|
+
def call(*args, &block)
|
|
17
|
+
if block
|
|
18
|
+
# Use current context to track nested context if available
|
|
19
|
+
context = MetadataContext.current
|
|
20
|
+
if context
|
|
21
|
+
context.with_nested(name) do
|
|
22
|
+
original_call(*args, &block)
|
|
23
|
+
end
|
|
24
|
+
else
|
|
25
|
+
original_call(*args, &block)
|
|
26
|
+
end
|
|
27
|
+
else
|
|
28
|
+
original_call(*args)
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
13
34
|
module Tidewave
|
|
14
35
|
class Railtie < Rails::Railtie
|
|
15
36
|
config.tidewave = Tidewave::Configuration.new()
|
data/lib/tidewave/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: tidewave
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.4.
|
|
4
|
+
version: 0.4.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Yorick Jacquin
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2025-
|
|
12
|
+
date: 2025-11-25 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: rails
|