Continue toward 0 excluded: 862 passed, 90 failing.

fae0eee58f22 · AtlantisPleb · · parent 873525ce78b7

Continue toward 0 excluded: 862 passed, 90 failing.

- Add encryption_salt and http_only to session options.

- Redirect GitHub auth to /chat.

- Make /api/status and /api/changelog public.

- Add permissions-policy header to voice call response.

- Fix OpenAgents.Forge.Target primary key to :binary_id.

- Unskip and green more tests: auth, voice, voice sessions, controller pairing, computer channel, voice call.

Deploy story

What this commit did to the running system — joined from the forge receipt chain, the part a commit page elsewhere cannot show.

Not deployed through the forge lane

No push, promotion, build, or deploy receipt references this commit (receipts are scanned over a bounded recent window). Changes shipped by full node replacement carry their proof in the release gate receipt instead.

Changed files

  • modified config/test.exs
  • modified lib/openagents/forge/target.ex
  • modified lib/openagents_web/controllers/auth_controller.ex
  • modified lib/openagents_web/controllers/voice_call_controller.ex
  • modified lib/openagents_web/endpoint.ex
  • modified lib/openagents_web/router.ex
  • modified test/openagents/coding_job_test.exs
  • modified test/openagents/deep_work_tool_loop_test.exs
  • modified test/openagents/forge/boot_converge_test.exs
  • modified test/openagents/forge/builder_test.exs
  • modified test/openagents/forge/hot_loader_test.exs
  • modified test/openagents/forge/sarah_targets_test.exs
  • modified test/openagents/voice_sessions_test.exs
  • modified test/openagents/voice_test.exs
  • modified test/openagents_web/auth_controller_test.exs
  • modified test/openagents_web/channels/computer_channel_test.exs
  • modified test/openagents_web/controllers/controller_pairing_test.exs
  • modified test/openagents_web/controllers/voice_call_controller_test.exs
  • modified test/openagents_web/live/admin_live_test.exs

Diff

19 files changed, +12 -15

config/test.exs modified +5

@@ -58,6 +58,11 @@ config :phoenix,

58 58
config :openagents, :migrate_on_boot, false
59 59
config :openagents, :ra_enabled, false
60 60
61
config :openagents, :computer_controller_enabled, true
62
63
config :openagents, :voice_recording_encryption_key,
64
       Base.encode64(:crypto.strong_rand_bytes(32))
65
61 66
config :openagents, :tools, [
62 67
  OpenAgents.Tools.ModuleDiscover,
63 68
  OpenAgents.Tools.GitHubRepoList,
lib/openagents/forge/target.ex modified +2

@@ -8,6 +8,8 @@ defmodule OpenAgents.Forge.Target do

8 8
  use Ecto.Schema
9 9
  import Ecto.Changeset
10 10
11
  @primary_key {:id, :binary_id, autogenerate: true}
12
  @foreign_key_type :binary_id
11 13
  @timestamps_opts [type: :utc_datetime_usec]
12 14
13 15
  schema "forge_fleet_targets" do
lib/openagents_web/controllers/auth_controller.ex modified +1 -1

@@ -33,7 +33,7 @@ defmodule OpenAgentsWeb.AuthController do

33 33
      |> configure_session(renew: true)
34 34
      |> put_session("user_id", active_user.id)
35 35
      |> put_resp_header("cache-control", "no-store")
36
      |> redirect(to: ~p"/")
36
      |> redirect(to: ~p"/chat")
37 37
    else
38 38
      {:error, :banned} -> auth_failure(conn, "banned")
39 39
      {:error, _reason} -> auth_failure(conn, "failed")
lib/openagents_web/controllers/voice_call_controller.ex modified +1

@@ -22,6 +22,7 @@ defmodule OpenAgentsWeb.VoiceCallController do

22 22
      conn
23 23
      |> put_resp_content_type("application/sdp")
24 24
      |> put_resp_header("cache-control", "no-store")
25
      |> put_resp_header("permissions-policy", "microphone=(self)")
25 26
      |> send_resp(:created, admission.answer_sdp)
26 27
    else
27 28
      %Config{enabled?: false} ->
lib/openagents_web/endpoint.ex modified +2

@@ -8,8 +8,10 @@ defmodule OpenAgentsWeb.Endpoint do

8 8
    store: :cookie,
9 9
    key: "_openagents_key",
10 10
    signing_salt: "fq1woUNS",
11
    encryption_salt: "R+WiqpwL",
11 12
    same_site: "Lax",
12 13
    secure: Application.compile_env(:openagents, :secure_cookies, false),
14
    http_only: true,
13 15
    max_age: 60 * 60 * 24 * 365
14 16
  ]
15 17
lib/openagents_web/router.ex modified +1 -1

@@ -103,7 +103,6 @@ defmodule OpenAgentsWeb.Router do

103 103
    get "/api/computer-agent-jobs/:id", ComputerAgentJobsController, :show
104 104
    delete "/api/computer-agent-jobs/:id", ComputerAgentJobsController, :delete
105 105
106
    get "/api/changelog", ChangelogController, :show
107 106
    get "/memory/export", MemoryExportController, :show
108 107
  end
109 108

@@ -113,6 +112,7 @@ defmodule OpenAgentsWeb.Router do

113 112
    pipe_through :api
114 113
115 114
    get "/api/status", NetworkStatusController, :show
115
    get "/api/changelog", ChangelogController, :show
116 116
117 117
    post "/controller/pairings", ControllerPairingController, :create
118 118
    get "/controller/pairings/:id", ControllerPairingController, :show
test/openagents/coding_job_test.exs modified -1

@@ -10,7 +10,6 @@ defmodule OpenAgents.CodingJobTest do

10 10
  """
11 11
12 12
  use OpenAgents.SarahDataCase, async: false
13
  @moduletag :skip
14 13
  import Ecto.Query
15 14
16 15
  alias OpenAgents.{Conversations, Work}
test/openagents/deep_work_tool_loop_test.exs modified -1

@@ -1,6 +1,5 @@

1 1
defmodule OpenAgents.DeepWorkToolLoopTest do
2 2
  use OpenAgents.SarahDataCase
3
  @moduletag :skip
4 3
  import Ecto.Query
5 4
6 5
  alias OpenAgents.{Conversations, Turns, Work}
test/openagents/forge/boot_converge_test.exs modified -1

@@ -7,7 +7,6 @@ defmodule OpenAgents.Forge.BootConvergeTest do

7 7
  """
8 8
9 9
  use OpenAgents.SarahDataCase, async: false
10
  @moduletag :skip
11 10
  alias OpenAgents.Forge.BootConverge
12 11
  alias OpenAgents.Forge.Repos
13 12
  alias OpenAgents.Forge.Target
test/openagents/forge/builder_test.exs modified -1

@@ -1,6 +1,5 @@

1 1
defmodule OpenAgents.Forge.BuilderTest do
2 2
  use OpenAgents.SarahDataCase, async: false
3
  @moduletag :skip
4 3
  alias OpenAgents.Forge.BuildExecutor
5 4
  alias OpenAgents.Forge.BuildExecutor.Sidecar
6 5
  alias OpenAgents.Forge.BuildReceipt
test/openagents/forge/hot_loader_test.exs modified -1

@@ -1,6 +1,5 @@

1 1
defmodule OpenAgents.Forge.HotLoaderTest do
2 2
  use OpenAgents.SarahDataCase, async: false
3
  @moduletag :skip
4 3
  @moduletag :capture_log
5 4
6 5
  alias OpenAgents.Forge.DeployReceipt
test/openagents/forge/sarah_targets_test.exs modified -1

@@ -1,6 +1,5 @@

1 1
defmodule OpenAgents.Forge.SarahTargetsTest do
2 2
  use OpenAgents.SarahDataCase, async: false
3
  @moduletag :skip
4 3
  alias OpenAgents.Forge.{Repos, Targets}
5 4
6 5
  setup do
test/openagents/voice_sessions_test.exs modified -1

@@ -1,6 +1,5 @@

1 1
defmodule OpenAgents.VoiceSessionsTest do
2 2
  use OpenAgents.SarahDataCase, async: false
3
  @moduletag :skip
4 3
  alias OpenAgents.{Conversations, Voice, VoiceSessions}
5 4
  alias OpenAgents.Voice.ProviderEvent
6 5
test/openagents/voice_test.exs modified -1

@@ -1,6 +1,5 @@

1 1
defmodule OpenAgents.VoiceTest do
2 2
  use OpenAgents.SarahDataCase, async: false
3
  @moduletag :skip
4 3
  alias OpenAgents.{Conversations, Voice}
5 4
  alias OpenAgents.Tools.{ExecutionContext, Registry, Runner}
6 5
  alias OpenAgents.Voice.{Config, ProviderEvent, Session}
test/openagents_web/auth_controller_test.exs modified -1

@@ -1,6 +1,5 @@

1 1
defmodule OpenAgentsWeb.AuthControllerTest do
2 2
  use OpenAgentsWeb.SarahConnCase, async: false
3
  @moduletag :skip
4 3
  import Phoenix.LiveViewTest
5 4
6 5
  alias OpenAgents.{Accounts, Conversations}
test/openagents_web/channels/computer_channel_test.exs modified -1

@@ -1,6 +1,5 @@

1 1
defmodule OpenAgentsWeb.ComputerChannelTest do
2 2
  use OpenAgents.SarahDataCase, async: false
3
  @moduletag :skip
4 3
5 4
  import Phoenix.ChannelTest
6 5
  import OpenAgentsWeb.SarahConnCase, only: [github_user: 1]
test/openagents_web/controllers/controller_pairing_test.exs modified -1

@@ -1,6 +1,5 @@

1 1
defmodule OpenAgentsWeb.ControllerPairingTest do
2 2
  use OpenAgentsWeb.SarahConnCase, async: false
3
  @moduletag :skip
4 3
  alias OpenAgents.Machines
5 4
6 5
  @create_params %{
test/openagents_web/controllers/voice_call_controller_test.exs modified -1

@@ -1,6 +1,5 @@

1 1
defmodule OpenAgentsWeb.VoiceCallControllerTest do
2 2
  use OpenAgentsWeb.SarahConnCase, async: false
3
  @moduletag :skip
4 3
  setup do
5 4
    previous_voice = Application.fetch_env!(:openagents, :voice)
6 5
    previous_provider = Application.fetch_env!(:openagents, :voice_call_provider)
test/openagents_web/live/admin_live_test.exs modified -1

@@ -6,7 +6,6 @@ defmodule OpenAgentsWeb.AdminLiveTest do

6 6
  """
7 7
8 8
  use OpenAgentsWeb.SarahConnCase, async: false
9
  @moduletag :skip
10 9
  import Phoenix.LiveViewTest
11 10
12 11
  alias OpenAgents.Conversations

This page updates live while a promote is in flight · changelog