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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 728311a2ea0525028ccf9209d06bc1079f9258e35d534409f4ac867ff5212d32
4
- data.tar.gz: 11c1b092dc830897e59cb39f71de745b840acfd6f8845bf058c9010a06258e75
3
+ metadata.gz: d3375b13a00fb5b052a2bea5c6b720056379f16a26cc984ffde2973d2d2fca90
4
+ data.tar.gz: b5d7c9d2290e2273116712116fcb8336ddbc4009be187ca0413ec3c727b33e6b
5
5
  SHA512:
6
- metadata.gz: f9b49181b3f571b668de00287f0fec47088256ee335e31036385cedcb3b8c34274529d70a4f21d9c114279d9a1f5e52a56cab75b8465546863e0fd539fd1b390
7
- data.tar.gz: 1201a00a28892246592c158bc0e90cb5a6ce5d69a6a3533ef81bb8c853d2124d3544d029e8346613fa4d099010869f83cae49bcad82d890d1e935ee9f54903f4
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, deeply integrated with Rails, from the database to the UI. [See our website](https://tidewave.ai) for more information.
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 access `/tidewave` route of your web application to enjoy Tidewave Web!
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.allow_remote_access = true
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 as well. If you trust your network and need to access Tidewave from a different machine, this configuration can be set to `true`
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
 
@@ -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()
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Tidewave
4
- VERSION = "0.4.0"
4
+ VERSION = "0.4.1"
5
5
  end
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.0
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-10-17 00:00:00.000000000 Z
12
+ date: 2025-11-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails