Skip to content

[codex] Add tiny.place orchestration pairing flow - #4400

Merged
senamakel merged 9 commits into
tinyhumansai:mainfrom
senamakel:plan/subconscious-orchestration
Jul 2, 2026
Merged

senamakel merged 9 commits into
tinyhumansai:mainfrom
senamakel:plan/subconscious-orchestration

Conversation

@senamakel

@senamakel senamakel commented Jul 2, 2026 •

Copy link
Copy Markdown
Member

Summary

  • Adds tiny.place contacts controllers to the core tinyplace domain so OpenHuman can request, accept, remove, block, list, and inspect contact edges through JSON-RPC.
  • Adds an agent_orchestration pairing policy and local pairing store for user-consented Codex/Claude session links.
  • Surfaces Brain tab link/approve controls for incoming session identity requests and explicit user-entered session identities.
  • Adds frontend API bindings, i18n keys across locales, orchestration pairing events, and focused Rust/Vitest coverage.

Problem

  • tiny.place now rejects 1:1 DMs between non-contacts with 403 not_a_contact.
  • Wrapped Codex/Claude session identities need an accepted mutual contact edge with the user's OpenHuman tiny.place identity before stage-1 envelopes can flow.
  • The bootstrap must be prompt-injection-safe: contact requests carry no free text, and the contact edge itself is the pairing signal.

Solution

  • Exposes the tiny.place contacts API through signed core controllers under openhuman.tinyplace_contacts_*.
  • Adds openhuman.orchestration_pairing_* controllers that persist local pairing intent, mirror live contact status, and require explicit link/accept/block actions.
  • Updates the TinyPlace orchestration Brain tab to display linked/pending/unlinked sessions and incoming requests with Accept, Decline, and Block actions.
  • Registers OrchestrationPairingChanged events so downstream orchestration surfaces can react to pairing updates.

Submission Checklist

If a section does not apply to this change, mark the item as N/A with a one-line reason. Do not delete items.

  • Tests added or updated (happy path + at least one failure / edge case) per Testing Strategy
  • N/A: Diff coverage >= 80% - focused local coverage commands were not run; CI coverage gate will report changed-line coverage.
  • N/A: Coverage matrix updated - internal orchestration/pairing behavior and Brain tab controls, no feature matrix row identified.
  • N/A: All affected feature IDs from the matrix are listed in the PR description under ## Related - no coverage matrix feature IDs identified.
  • No new external network dependencies introduced (mock backend used per Testing Strategy)
  • N/A: Manual smoke checklist updated if this touches release-cut surfaces (docs/RELEASE-MANUAL-SMOKE.md) - no release smoke checklist change identified.
  • N/A: Linked issue closed via Closes #NNN in the ## Related section - no issue number provided.

Impact

  • Runtime/platform impact: desktop Brain tab and Rust core JSON-RPC.
  • Security: preserves user consent for pairing, blocks locally recorded blocked contacts, and avoids free-text contact request payloads.
  • Compatibility: tiny.place direct-message forwarding can now be authorized through accepted contact edges instead of failing on not_a_contact.

Related

  • Closes: N/A
  • Follow-up PR(s)/TODOs: tiny.place SDK wrapper contact handshake PR.

AI Authored PR Metadata (required for Codex/Linear PRs)

Keep this section for AI-authored PRs. For human-only PRs, mark each field N/A.

Linear Issue

  • Key: N/A
  • URL: N/A

Commit & Branch

  • Branch: plan/subconscious-orchestration
  • Commit SHA: 42d329ca66a5ea9f2e799a43f4a6b1e2259e880b

Validation Run

  • pnpm --filter openhuman-app format:check (via pre-push)
  • pnpm typecheck
  • Focused tests: pnpm debug unit src/components/intelligence/TinyPlaceOrchestrationTab.test.tsx; cargo test --manifest-path Cargo.toml agent_orchestration::pairing --lib; cargo test --manifest-path Cargo.toml tinyplace::manifest::tests::contacts --lib; cargo test --manifest-path Cargo.toml schema_for_rpc_method_finds_internal_orchestration_pairing_link_session --lib; cargo test --manifest-path Cargo.toml rpc_method_from_parts_does_not_expose_internal_orchestration_pairing --lib
  • Rust fmt/check (if changed): cargo fmt --manifest-path ../Cargo.toml --all --check and cargo check --manifest-path app/src-tauri/Cargo.toml via pre-push; focused Rust tests listed above
  • Tauri fmt/check (if changed): cargo fmt --manifest-path app/src-tauri/Cargo.toml --all --check and cargo check --manifest-path app/src-tauri/Cargo.toml via pre-push

Validation Blocked

  • command: N/A
  • error: N/A
  • impact: N/A

Behavior Changes

  • Intended behavior change: OpenHuman can explicitly link or approve wrapped Codex/Claude session identities before tiny.place DMs are used for session envelopes.
  • User-visible effect: Brain tab shows pairing status and approval controls for session identities.

Parity Contract

  • Legacy behavior preserved: existing orchestration messaging and Brain tab reads remain available; pairing augments the tiny.place DM authorization path.
  • Guard/fallback/dispatch parity checks: contact status is checked through tiny.place before local pairing records are trusted; blocked contacts are not linked.

Duplicate / Superseded PR Handling

  • Duplicate PR(s): None found for senamakel:plan/subconscious-orchestration.
  • Canonical PR: This PR.
  • Resolution (closed/superseded/updated): N/A.

Summary by CodeRabbit

  • New Features
    • Added a Brain sub-tab for TinyPlace orchestration with pinned/master/subconscious chats, session navigation, unread badges, refresh, and encrypted-message handling.
    • Enabled session linking and contact request workflows (approve/decline/block), with visible pairing status and inbox-backed sessions.
    • Introduced TinyPlace orchestration translations across multiple languages.
  • Bug Fixes
    • Improved loading/error/payment-required states, retry behavior, and encrypted/unknown-sender message presentation.
  • Documentation
    • Added/updated subconscious orchestration and TinyPlace bridging architecture and stage plans (Stages 1–8).
  • Tests
    • Expanded orchestration UI tests and enhanced Playwright tool-call flow assertions.

@coderabbitai

coderabbitai Bot commented Jul 2, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 05e2820d-047f-4422-8489-e13ce0557414

📥 Commits

Reviewing files that changed from the base of the PR and between 9e9310d and 42d329c.

📒 Files selected for processing (4)
  • app/src/lib/agentworld/invokeApiClient.test.ts
  • app/src/pages/__tests__/Brain.test.tsx
  • app/test/playwright/specs/chat-multi-tool-round.spec.ts
  • app/test/playwright/specs/chat-tool-call-flow.spec.ts

📝 Walkthrough

Walkthrough

This PR adds TinyPlace orchestration pairing and contacts RPCs, a new Brain tab UI with client wiring and tests, locale translations, and architecture/planning docs for the broader subconscious orchestration system.

Changes

TinyPlace orchestration feature

Layer / File(s) Summary
Pairing domain and registry
src/openhuman/agent_orchestration/pairing.rs, src/core/event_bus/events.rs, src/openhuman/agent_orchestration/mod.rs, src/core/all.rs, src/core/all_tests.rs
Adds pairing types, local persistence, pairing RPC registration, OrchestrationPairingChanged, and core registry coverage.
Contacts RPC surface
src/openhuman/tinyplace/manifest.rs, src/openhuman/tinyplace/mod.rs, src/openhuman/tinyplace/schemas.rs
Adds contacts helpers, signed contact RPC handlers, schema definitions, and registry wiring.
Client surface and Brain wiring
app/src/lib/agentworld/invokeApiClient.ts, app/src/pages/Brain.tsx, app/src/lib/i18n/*.ts
Adds new API namespaces, Brain tab integration, and locale strings for the new UI.
TinyPlace orchestration tab
app/src/components/intelligence/TinyPlaceOrchestrationTab.tsx, app/src/components/intelligence/TinyPlaceOrchestrationTab.test.tsx
Adds the orchestration tab implementation, pairing actions, rendering logic, and coverage for message, inbox, error, and request flows.

Architecture and orchestration planning docs

Layer / File(s) Summary
Closed-loop architecture specification
docs/arch-subconscious.md
Describes the automated orchestration loop, compression and context rules, reference implementation, and checklist updates.
Staged implementation plans
docs/plans/subconscious-orchestration/*.md
Adds the overview and stage 1-8 planning documents for the orchestration rollout.

Estimated code review effort: 4 (Complex) | ~60 minutes

Suggested labels: feature, agent, rust-core

Poem

A rabbit hops through TinyPlace light,
with pairing bells and tabs in sight 🐰
Contacts linked and chats now bloom,
docs and code all share the room,
hop-hop — the orchestration sings just right.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title is concise and accurately summarizes the main change: adding the tiny.place orchestration pairing flow.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

Comment @coderabbitai help to get the list of available commands.

@senamakel
senamakel marked this pull request as ready for review July 2, 2026 04:58
@senamakel
senamakel requested a review from a team July 2, 2026 04:58
@coderabbitai coderabbitai Bot added agent Built-in agents, prompts, orchestration, and agent runtime in src/openhuman/agent/. feature Net-new user-facing capability or product behavior. rust-core Core Rust runtime in src/: CLI, core_server, shared infrastructure. labels Jul 2, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2bedc567a6

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/core/all.rs Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 6

🧹 Nitpick comments (2)
src/openhuman/tinyplace/manifest.rs (1)

65-82: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Duplicate route-building helpers vs. agent_orchestration/pairing.rs.

encode_path_segment and contact_path here are functionally identical to the private helpers of the same name in src/openhuman/agent_orchestration/pairing.rs (see context snippet: pairing.rs:331-348). Two independent implementations of contact-route construction risk silently drifting (e.g. one gets updated with new percent-encoding rules or an extra suffix case and the other doesn't), which would desync the client route contract.

Consider extracting a small shared helper (e.g. in a common tinyplace/util module reachable by both domains) for percent-encoding and /contacts/... path construction.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/openhuman/tinyplace/manifest.rs` around lines 65 - 82, The contact route
helpers are duplicated between this module and the pairing logic, so route
construction can drift over time. Extract the shared percent-encoding and
`/contacts/...` path builder used by encode_path_segment and contact_path into a
common helper module that both manifest.rs and pairing.rs call, and update both
call sites to use that single implementation.
src/openhuman/agent_orchestration/pairing.rs (1)

77-110: 🚀 Performance & Scalability | 🔵 Trivial | ⚡ Quick win

Sequential HTTP calls in list() can be parallelized.

The three tiny.place fetches (/contacts, /contacts/requests, /contacts/stats) are independent and currently run sequentially, adding up their latencies whenever the Brain tab loads pairing state.

⚡ Run the three fetches concurrently
-    let contacts: Value = client
-        .http()
-        .get_agent_auth::<Value>("/contacts", &[("limit".to_string(), "100".to_string())])
-        .await
-        .map_err(map_err)?;
-    let requests: Value = client
-        .http()
-        .get_agent_auth::<Value>(
-            "/contacts/requests",
-            &[("limit".to_string(), "100".to_string())],
-        )
-        .await
-        .map_err(map_err)?;
-    let stats: Value = client
-        .http()
-        .get_agent_auth::<Value>("/contacts/stats", &[])
-        .await
-        .map_err(map_err)?;
+    let (contacts, requests, stats) = tokio::try_join!(
+        client
+            .http()
+            .get_agent_auth::<Value>("/contacts", &[("limit".to_string(), "100".to_string())]),
+        client.http().get_agent_auth::<Value>(
+            "/contacts/requests",
+            &[("limit".to_string(), "100".to_string())],
+        ),
+        client.http().get_agent_auth::<Value>("/contacts/stats", &[]),
+    )
+    .map_err(map_err)?;
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/openhuman/agent_orchestration/pairing.rs` around lines 77 - 110, The
three independent tiny.place requests in `list()` are still being awaited one
after another, which makes `PairingSnapshot` loading slower than necessary.
Refactor the fetches in `list` to run concurrently after `client` is acquired,
using the same `client.http().get_agent_auth(...)` calls for `/contacts`,
`/contacts/requests`, and `/contacts/stats`, and preserve the existing
`map_err(map_err)` handling for each result before constructing
`PairingSnapshot`.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@app/src/components/intelligence/TinyPlaceOrchestrationTab.tsx`:
- Around line 70-91: The current chat classification in chatKindForEnvelope is
using searchText to scan free-text fields like envelope.body and
envelope.contentHint, which can misclassify ordinary session messages. Update
chatKindForEnvelope to determine the ChatKind from the structural envelope.type
field only, and stop using keyword matching on message content; if searchText is
no longer needed elsewhere in TinyPlaceOrchestrationTab, remove or repurpose it
accordingly.

In `@docs/arch-subconscious.md`:
- Around line 307-309: The example in the workflow compilation snippet uses an
in-memory checkpointer, which does not match the intended durable crash-resume
flow. Update the snippet around workflow.compile and MemorySaver to use
SqlRunLedgerCheckpointer instead, or clearly label the example as
illustrative-only if it is meant to stay non-durable. Keep the guidance aligned
with the existing workflow.compile, compiled_autonomous_harness, and
checkpointer setup so readers see the correct persistence path.

In `@docs/plans/subconscious-orchestration/stage-04-frontend-agent.md`:
- Around line 34-40: The stage-4 topology uses inconsistent guard-node naming
between the deliverables list and the routing description, so make the name
consistent throughout this plan section. Update the graph topology text in the
stage-04 frontend agent document to use a single symbol name for the guard node,
matching the rest of the node list and the conditional-edge flow in
`orchestration/graph/mod.rs`.

In `@docs/plans/subconscious-orchestration/stage-05-reasoning-orchestrator.md`:
- Around line 35-39: The compress node budget in orchestration/graph/compress.rs
is not strictly ratio-compliant because the 200-token floor can exceed the
intended input_tokens / 20 target for short traces. Update the compress logic so
the minimum budget is only applied when the source trace is large enough, and
keep the enforced output budget tied to the 20:1 ratio while preserving the
retry-once-then-truncate flow and the append/persist behavior for
compressed_history.

In `@docs/plans/subconscious-orchestration/stage-06-subconscious-steering.md`:
- Around line 42-45: The “Subconscious chat surface” step currently mentions
optionally mirroring emitted directives as a self-DM over tiny.place, which
conflicts with the offline-only contract. Update the stage-06 guidance around
the Subconscious directive publication so it only describes publishing each
emitted directive as an OrchestrationMessage with chat_kind: Subconscious, and
remove any reference to self-DM mirroring or other external effects.

In `@src/openhuman/agent_orchestration/pairing.rs`:
- Around line 254-314: The pairing store update flow in persist_record,
remove_record, load_store, and save_store can race because each call does an
unprotected read-modify-write cycle on the same pairings.json. Add a
per-workspace synchronization guard (for example a shared tokio::sync::Mutex or
equivalent file lock) and acquire it in the entry points like link_session,
accept_request, decline_request, and block_request so only one store mutation
happens at a time. Also make save_store use a unique temp file per write or keep
it inside the same locked critical section to avoid collisions on the fixed
json.tmp path.

---

Nitpick comments:
In `@src/openhuman/agent_orchestration/pairing.rs`:
- Around line 77-110: The three independent tiny.place requests in `list()` are
still being awaited one after another, which makes `PairingSnapshot` loading
slower than necessary. Refactor the fetches in `list` to run concurrently after
`client` is acquired, using the same `client.http().get_agent_auth(...)` calls
for `/contacts`, `/contacts/requests`, and `/contacts/stats`, and preserve the
existing `map_err(map_err)` handling for each result before constructing
`PairingSnapshot`.

In `@src/openhuman/tinyplace/manifest.rs`:
- Around line 65-82: The contact route helpers are duplicated between this
module and the pairing logic, so route construction can drift over time. Extract
the shared percent-encoding and `/contacts/...` path builder used by
encode_path_segment and contact_path into a common helper module that both
manifest.rs and pairing.rs call, and update both call sites to use that single
implementation.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 099a9239-5c85-4d49-8bda-6b1091715aa0

📥 Commits

Reviewing files that changed from the base of the PR and between 4c98a31 and 2bedc56.

📒 Files selected for processing (36)
  • app/src/components/intelligence/TinyPlaceOrchestrationTab.test.tsx
  • app/src/components/intelligence/TinyPlaceOrchestrationTab.tsx
  • app/src/lib/agentworld/invokeApiClient.ts
  • app/src/lib/i18n/ar.ts
  • app/src/lib/i18n/bn.ts
  • app/src/lib/i18n/de.ts
  • app/src/lib/i18n/en.ts
  • app/src/lib/i18n/es.ts
  • app/src/lib/i18n/fr.ts
  • app/src/lib/i18n/hi.ts
  • app/src/lib/i18n/id.ts
  • app/src/lib/i18n/it.ts
  • app/src/lib/i18n/ko.ts
  • app/src/lib/i18n/pl.ts
  • app/src/lib/i18n/pt.ts
  • app/src/lib/i18n/ru.ts
  • app/src/lib/i18n/zh-CN.ts
  • app/src/pages/Brain.tsx
  • docs/arch-subconscious.md
  • docs/plans/subconscious-orchestration/README.md
  • docs/plans/subconscious-orchestration/stage-01-tinyplace-session-bridge.md
  • docs/plans/subconscious-orchestration/stage-02-contact-pairing.md
  • docs/plans/subconscious-orchestration/stage-03-core-ingest.md
  • docs/plans/subconscious-orchestration/stage-04-frontend-agent.md
  • docs/plans/subconscious-orchestration/stage-05-reasoning-orchestrator.md
  • docs/plans/subconscious-orchestration/stage-06-subconscious-steering.md
  • docs/plans/subconscious-orchestration/stage-07-rpc-and-ui.md
  • docs/plans/subconscious-orchestration/stage-08-testing-observability.md
  • src/core/all.rs
  • src/core/event_bus/events.rs
  • src/openhuman/agent_orchestration/mod.rs
  • src/openhuman/agent_orchestration/pairing.rs
  • src/openhuman/agent_orchestration/pairing_schemas.rs
  • src/openhuman/tinyplace/manifest.rs
  • src/openhuman/tinyplace/mod.rs
  • src/openhuman/tinyplace/schemas.rs

Comment thread app/src/components/intelligence/TinyPlaceOrchestrationTab.tsx Outdated
Comment thread docs/arch-subconscious.md Outdated
Comment thread docs/plans/subconscious-orchestration/stage-04-frontend-agent.md
Comment thread docs/plans/subconscious-orchestration/stage-06-subconscious-steering.md Outdated
Comment thread src/openhuman/agent_orchestration/pairing.rs

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 353cf758bc

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/openhuman/agent_orchestration/pairing.rs

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
docs/arch-subconscious.md (1)

66-67: 🔒 Security & Privacy | 🟠 Major | 🏗️ Heavy lift

Keep a trust boundary between channel input and steering prompts.

The spec currently lets the cumulative world_state_diff—built from external channels—flow directly into the Reasoning LLM prompt. If that diff includes user-supplied text, this becomes a prompt-injection surface and can corrupt steering. Normalize/filter it first and keep raw channel content out of the steering payload.

Also applies to: 93-94

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/arch-subconscious.md` around lines 66 - 67, The graph-state
documentation for Channels and the Front-End Agent should be updated to preserve
a trust boundary between external channel input and steering prompts. In the
relevant prose around the Channels/Front-End Agent sections, clarify that raw
channel content must be normalized or filtered before it is included in any
Reasoning LLM steering payload, and that only sanitized state diffs should flow
into the prompt. Reference the Channels and Front-End Agent concepts
consistently so the boundary is explicit wherever the world_state_diff handoff
is described.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In `@docs/arch-subconscious.md`:
- Around line 66-67: The graph-state documentation for Channels and the
Front-End Agent should be updated to preserve a trust boundary between external
channel input and steering prompts. In the relevant prose around the
Channels/Front-End Agent sections, clarify that raw channel content must be
normalized or filtered before it is included in any Reasoning LLM steering
payload, and that only sanitized state diffs should flow into the prompt.
Reference the Channels and Front-End Agent concepts consistently so the boundary
is explicit wherever the world_state_diff handoff is described.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 4a7a1d75-26f8-448a-9792-15e0a4df6205

📥 Commits

Reviewing files that changed from the base of the PR and between 2bedc56 and c2c7081.

📒 Files selected for processing (9)
  • app/src/components/intelligence/TinyPlaceOrchestrationTab.test.tsx
  • app/src/components/intelligence/TinyPlaceOrchestrationTab.tsx
  • docs/arch-subconscious.md
  • docs/plans/subconscious-orchestration/stage-04-frontend-agent.md
  • docs/plans/subconscious-orchestration/stage-05-reasoning-orchestrator.md
  • docs/plans/subconscious-orchestration/stage-06-subconscious-steering.md
  • src/core/all.rs
  • src/core/all_tests.rs
  • src/openhuman/agent_orchestration/pairing.rs
✅ Files skipped from review due to trivial changes (2)
  • docs/plans/subconscious-orchestration/stage-04-frontend-agent.md
  • docs/plans/subconscious-orchestration/stage-05-reasoning-orchestrator.md
🚧 Files skipped from review as they are similar to previous changes (4)
  • docs/plans/subconscious-orchestration/stage-06-subconscious-steering.md
  • app/src/components/intelligence/TinyPlaceOrchestrationTab.test.tsx
  • app/src/components/intelligence/TinyPlaceOrchestrationTab.tsx
  • src/openhuman/agent_orchestration/pairing.rs

coderabbitai[bot]
coderabbitai Bot previously approved these changes Jul 2, 2026
@senamakel
senamakel merged commit 391aa73 into tinyhumansai:main Jul 2, 2026
6 of 7 checks passed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 42d329ca66

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +234 to +237
return Array.from(byId.values()).map(chat => ({
...chat,
active: chat.pinned ? true : isActive(chat.lastTimestamp, chat.unread),
}));

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Surface pending pairing records in the session list

At this return point, byId has only been populated from data.messages and data.inboxItems; data.pairing.records is never read. When a user pastes a fresh session identity, linkSession persists a pending/linked PairingRecord before any DM or inbox item exists, then load() refreshes but the Sessions list can still remain empty, so the user cannot see or revisit the pending link they just created until a message arrives. Please add pairing records as session rows, or otherwise surface them in this tab.

Useful? React with 👍 / 👎.

senamakel added a commit to nocstah/openhuman that referenced this pull request Sep 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agent Built-in agents, prompts, orchestration, and agent runtime in src/openhuman/agent/. feature Net-new user-facing capability or product behavior. rust-core Core Rust runtime in src/: CLI, core_server, shared infrastructure.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant