Skip to content

chore: finish the code-facing Loong rebrand outside the docs lane#1108

Merged
chumyin merged 10 commits intoeastreams:devfrom
chumyin:work/rebrand-non-doc-20260408
Apr 15, 2026
Merged

chore: finish the code-facing Loong rebrand outside the docs lane#1108
chumyin merged 10 commits intoeastreams:devfrom
chumyin:work/rebrand-non-doc-20260408

Conversation

@chumyin
Copy link
Copy Markdown
Collaborator

@chumyin chumyin commented Apr 8, 2026

Summary

This PR finishes the code-facing Loong rebrand outside the docs lane handled by #756.

It updates the workspace so that package metadata, runtime-facing names, scripts, workflows, and release-governance tooling consistently use the Loong brand, while keeping the explicitly preserved legacy contact endpoints unchanged.

What changed

  • renamed workspace package/crate surfaces from loongclaw-* to loong-*
  • renamed code-facing runtime identifiers such as LoongClawKernel / LoongClawConfig to LoongKernel / LoongConfig
  • switched primary env/config paths from LOONGCLAW_* / .loongclaw to LOONG_* / .loong
  • kept explicit compatibility aliases where the current product contract still expects them (for example legacy installer env vars and the loongclaw shim binary)
  • updated repository metadata, workflows, installers, and governance scripts to eastreams/loong
  • aligned release templates and example assets with the new code-facing naming
  • preserved legacy contact/community endpoints (contact@loongclaw.ai, https://t.me/loongclaw)

Notes

  • Follow-up to docs: tighten public docs surfaces and Mintlify delivery baseline #756, but intentionally delivered on a separate branch/PR.
  • Internal docs/plans migration to the knowledge-base is out of scope here.
  • The remaining intentional loongclaw references in this lane are limited to preserved legacy contact/community endpoints and compatibility aliases.

Validation

  • cargo fmt --all
  • cargo check --workspace --all-targets
  • cargo clippy --workspace --all-targets --all-features -- -D warnings
  • cargo test -p loong-kernel --test kernel_integration
  • bash scripts/check_dep_graph.sh
  • bash scripts/test_architecture_budget_scripts.sh
  • bash scripts/test_check_architecture_drift_freshness.sh
  • bash scripts/test_bootstrap_release_local_artifacts.sh
  • bash scripts/test_install_sh.sh
  • git diff --check

Closes #1107

@chumyin chumyin requested review from gh-xj and primaryphd as code owners April 8, 2026 10:47
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 8, 2026

Important

Review skipped

Too many files!

This PR contains 299 files, which is 149 over the limit of 150.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 67d04358-13ef-41c4-bc02-542c395ec63a

📥 Commits

Reviewing files that changed from the base of the PR and between 8141c13 and 6597aff.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (299)
  • .github/CODEOWNERS
  • .github/ISSUE_TEMPLATE/bug_report.yml
  • .github/ISSUE_TEMPLATE/config.yml
  • .github/workflows/ci.yml
  • .github/workflows/perf-benchmark.yml
  • .github/workflows/release.yml
  • .gitignore
  • AGENTS.md
  • ARCHITECTURE.md
  • CHANGELOG.md
  • CLAUDE.md
  • CODE_OF_CONDUCT.md
  • CONTRIBUTING.md
  • Cargo.toml
  • LICENSE-MIT
  • SECURITY.md
  • Taskfile.yml
  • clippy.toml
  • crates/app/Cargo.toml
  • crates/app/build.rs
  • crates/app/src/acp/acpx.rs
  • crates/app/src/acp/acpx/tests/mcp_proxy_tests.rs
  • crates/app/src/acp/acpx/tests/path_tests.rs
  • crates/app/src/acp/acpx_doctor_tests.rs
  • crates/app/src/acp/acpx_mcp.rs
  • crates/app/src/acp/assets/acpx-mcp-proxy.mjs
  • crates/app/src/acp/backend.rs
  • crates/app/src/acp/manager.rs
  • crates/app/src/acp/registry.rs
  • crates/app/src/acp/runtime.rs
  • crates/app/src/channel/commands/context.rs
  • crates/app/src/channel/dispatch.rs
  • crates/app/src/channel/email.rs
  • crates/app/src/channel/feishu/adapter.rs
  • crates/app/src/channel/feishu/api/runtime.rs
  • crates/app/src/channel/feishu/mod.rs
  • crates/app/src/channel/feishu/payload/tests.rs
  • crates/app/src/channel/feishu/webhook.rs
  • crates/app/src/channel/feishu/websocket.rs
  • crates/app/src/channel/irc.rs
  • crates/app/src/channel/matrix.rs
  • crates/app/src/channel/mod.rs
  • crates/app/src/channel/nostr.rs
  • crates/app/src/channel/registry.rs
  • crates/app/src/channel/registry/hotspot_tests.rs
  • crates/app/src/channel/registry/tlon_support.rs
  • crates/app/src/channel/registry/trust_boundary_tests.rs
  • crates/app/src/channel/registry/twitch.rs
  • crates/app/src/channel/registry_bridge.rs
  • crates/app/src/channel/registry_nostr_impl.rs
  • crates/app/src/channel/registry_plugin_bridge.rs
  • crates/app/src/channel/registry_plugin_bridge_tests.rs
  • crates/app/src/channel/runtime/http.rs
  • crates/app/src/channel/runtime/state.rs
  • crates/app/src/channel/runtime/types.rs
  • crates/app/src/channel/sdk.rs
  • crates/app/src/channel/signal_command.rs
  • crates/app/src/channel/telegram.rs
  • crates/app/src/channel/tlon.rs
  • crates/app/src/channel/tlon_command.rs
  • crates/app/src/channel/twitch.rs
  • crates/app/src/channel/twitch_command.rs
  • crates/app/src/channel/wecom.rs
  • crates/app/src/channel/whatsapp/mod.rs
  • crates/app/src/channel/whatsapp/webhook.rs
  • crates/app/src/chat.rs
  • crates/app/src/chat/latest_session_selector_tests.rs
  • crates/app/src/chat/operator_surfaces.rs
  • crates/app/src/config/audit.rs
  • crates/app/src/config/channels.rs
  • crates/app/src/config/channels_bridge.rs
  • crates/app/src/config/channels_nostr_impl.rs
  • crates/app/src/config/feishu_integration.rs
  • crates/app/src/config/irc.rs
  • crates/app/src/config/memory.rs
  • crates/app/src/config/mod.rs
  • crates/app/src/config/provider.rs
  • crates/app/src/config/runtime.rs
  • crates/app/src/config/shared.rs
  • crates/app/src/config/tools.rs
  • crates/app/src/context.rs
  • crates/app/src/control_plane.rs
  • crates/app/src/conversation/announce.rs
  • crates/app/src/conversation/approval_resolution.rs
  • crates/app/src/conversation/autonomy_policy.rs
  • crates/app/src/conversation/context_engine.rs
  • crates/app/src/conversation/context_engine_registry.rs
  • crates/app/src/conversation/delegate_support.rs
  • crates/app/src/conversation/ingress.rs
  • crates/app/src/conversation/runtime.rs
  • crates/app/src/conversation/runtime_binding.rs
  • crates/app/src/conversation/session_history.rs
  • crates/app/src/conversation/tests.rs
  • crates/app/src/conversation/trust_projection.rs
  • crates/app/src/conversation/turn_coordinator.rs
  • crates/app/src/conversation/turn_coordinator/tests/turn_coordinator_safe_lane_route_tests.rs
  • crates/app/src/conversation/turn_coordinator_support.rs
  • crates/app/src/conversation/turn_engine.rs
  • crates/app/src/conversation/turn_loop.rs
  • crates/app/src/conversation/turn_middleware.rs
  • crates/app/src/conversation/turn_middleware_registry.rs
  • crates/app/src/conversation/turn_shared.rs
  • crates/app/src/conversation/workspace_isolation.rs
  • crates/app/src/lib.rs
  • crates/app/src/mcp/registry.rs
  • crates/app/src/memory/canonical.rs
  • crates/app/src/memory/context.rs
  • crates/app/src/memory/kernel_adapter.rs
  • crates/app/src/memory/mod.rs
  • crates/app/src/memory/orchestrator.rs
  • crates/app/src/memory/protocol.rs
  • crates/app/src/memory/runtime_config.rs
  • crates/app/src/memory/sqlite.rs
  • crates/app/src/memory/system.rs
  • crates/app/src/memory/system_registry.rs
  • crates/app/src/memory/system_runtime.rs
  • crates/app/src/memory/tests.rs
  • crates/app/src/migration/mod.rs
  • crates/app/src/migration/orchestrator.rs
  • crates/app/src/operator/approval_runtime.rs
  • crates/app/src/operator/delegate_runtime.rs
  • crates/app/src/operator/session_graph.rs
  • crates/app/src/presentation.rs
  • crates/app/src/process_env.rs
  • crates/app/src/process_launch.rs
  • crates/app/src/prompt/mod.rs
  • crates/app/src/provider/auth_profile_runtime.rs
  • crates/app/src/provider/catalog_query_runtime.rs
  • crates/app/src/provider/failover_telemetry_runtime.rs
  • crates/app/src/provider/mod.rs
  • crates/app/src/provider/model_candidate_resolver_runtime.rs
  • crates/app/src/provider/profile_state_backend.rs
  • crates/app/src/provider/provider_validation_runtime.rs
  • crates/app/src/provider/request_dispatch_runtime.rs
  • crates/app/src/provider/request_failover_runtime.rs
  • crates/app/src/provider/request_message_runtime.rs
  • crates/app/src/provider/request_payload_runtime.rs
  • crates/app/src/provider/request_session_runtime.rs
  • crates/app/src/provider/runtime_binding.rs
  • crates/app/src/provider/shape.rs
  • crates/app/src/provider/tests.rs
  • crates/app/src/provider/transport.rs
  • crates/app/src/runtime_env.rs
  • crates/app/src/runtime_self.rs
  • crates/app/src/runtime_self_continuity.rs
  • crates/app/src/secrets.rs
  • crates/app/src/session/frozen_result.rs
  • crates/app/src/session/repository.rs
  • crates/app/src/test_support.rs
  • crates/app/src/tools/approval.rs
  • crates/app/src/tools/bash.rs
  • crates/app/src/tools/bash_rules.rs
  • crates/app/src/tools/browser.rs
  • crates/app/src/tools/browser_companion.rs
  • crates/app/src/tools/catalog.rs
  • crates/app/src/tools/config_import.rs
  • crates/app/src/tools/delegate.rs
  • crates/app/src/tools/direct_policy_preflight.rs
  • crates/app/src/tools/external_skills.rs
  • crates/app/src/tools/external_skills_scan.rs
  • crates/app/src/tools/feishu.rs
  • crates/app/src/tools/file.rs
  • crates/app/src/tools/file_policy_ext.rs
  • crates/app/src/tools/kernel_adapter.rs
  • crates/app/src/tools/memory_tools.rs
  • crates/app/src/tools/messaging.rs
  • crates/app/src/tools/mod.rs
  • crates/app/src/tools/process_exec.rs
  • crates/app/src/tools/provider_switch.rs
  • crates/app/src/tools/required_capabilities_tests.rs
  • crates/app/src/tools/runtime_config.rs
  • crates/app/src/tools/session.rs
  • crates/app/src/tools/session_search.rs
  • crates/app/src/tools/shell.rs
  • crates/app/src/tools/shell_policy_ext.rs
  • crates/app/src/tools/shell_request_prep.rs
  • crates/app/src/tools/tests/bash_exec_tests.rs
  • crates/app/src/tools/web_fetch.rs
  • crates/app/src/tools/web_http.rs
  • crates/app/src/tools/web_search.rs
  • crates/app/src/tools/workspace_root_tests.rs
  • crates/app/src/work/repository.rs
  • crates/app/tests/build_metadata.rs
  • crates/app/tests/conversation_integration.rs
  • crates/app/tests/crypto_helpers.rs
  • crates/bench/Cargo.toml
  • crates/bench/src/lib.rs
  • crates/bench/src/test_support.rs
  • crates/bench/tests/bench_integration.rs
  • crates/contracts/Cargo.toml
  • crates/contracts/src/child_process_env.rs
  • crates/contracts/src/lib.rs
  • crates/daemon/Cargo.toml
  • crates/daemon/src/audit_cli.rs
  • crates/daemon/src/browser_companion_diagnostics.rs
  • crates/daemon/src/browser_preview.rs
  • crates/daemon/src/cli_handoff.rs
  • crates/daemon/src/completions_cli.rs
  • crates/daemon/src/control_plane_server.rs
  • crates/daemon/src/copilot_onboarding.rs
  • crates/daemon/src/doctor_cli.rs
  • crates/daemon/src/doctor_security_cli.rs
  • crates/daemon/src/external_skills_policy_probe.rs
  • crates/daemon/src/feishu_cli.rs
  • crates/daemon/src/feishu_support.rs
  • crates/daemon/src/gateway/client.rs
  • crates/daemon/src/gateway/control.rs
  • crates/daemon/src/gateway/read_models.rs
  • crates/daemon/src/gateway/state.rs
  • crates/daemon/src/import_cli.rs
  • crates/daemon/src/lib.rs
  • crates/daemon/src/main.rs
  • crates/daemon/src/memory_context_benchmark.rs
  • crates/daemon/src/migrate_cli.rs
  • crates/daemon/src/migration/channels/feishu.rs
  • crates/daemon/src/migration/channels/matrix.rs
  • crates/daemon/src/migration/channels/mod.rs
  • crates/daemon/src/migration/channels/plugin_bridge.rs
  • crates/daemon/src/migration/channels/telegram.rs
  • crates/daemon/src/migration/channels/wecom.rs
  • crates/daemon/src/migration/discovery.rs
  • crates/daemon/src/migration/planner.rs
  • crates/daemon/src/migration/provider_selection.rs
  • crates/daemon/src/migration/provider_transport.rs
  • crates/daemon/src/migration/render.rs
  • crates/daemon/src/migration/types.rs
  • crates/daemon/src/next_actions.rs
  • crates/daemon/src/observability.rs
  • crates/daemon/src/onboard_cli.rs
  • crates/daemon/src/onboard_finalize.rs
  • crates/daemon/src/onboard_preflight.rs
  • crates/daemon/src/onboard_presentation.rs
  • crates/daemon/src/onboard_web_search.rs
  • crates/daemon/src/onboarding_model_policy.rs
  • crates/daemon/src/operator_prompt.rs
  • crates/daemon/src/personalize_cli.rs
  • crates/daemon/src/plugins_cli.rs
  • crates/daemon/src/provider_credential_policy.rs
  • crates/daemon/src/provider_model_probe_policy.rs
  • crates/daemon/src/provider_presentation.rs
  • crates/daemon/src/provider_route_diagnostics.rs
  • crates/daemon/src/runtime_capability_cli.rs
  • crates/daemon/src/runtime_experiment_cli.rs
  • crates/daemon/src/runtime_restore_cli.rs
  • crates/daemon/src/runtime_trajectory_cli.rs
  • crates/daemon/src/sessions_cli.rs
  • crates/daemon/src/skills_cli.rs
  • crates/daemon/src/source_presentation.rs
  • crates/daemon/src/supervisor.rs
  • crates/daemon/src/task_execution.rs
  • crates/daemon/src/tasks_cli.rs
  • crates/daemon/src/test_support.rs
  • crates/daemon/src/work_unit_cli.rs
  • crates/daemon/tests/integration.rs
  • crates/daemon/tests/integration/acp.rs
  • crates/daemon/tests/integration/architecture.rs
  • crates/daemon/tests/integration/ask_cli.rs
  • crates/daemon/tests/integration/chat_cli.rs
  • crates/daemon/tests/integration/cli_tests.rs
  • crates/daemon/tests/integration/doctor_feishu.rs
  • crates/daemon/tests/integration/feishu_cli.rs
  • crates/daemon/tests/integration/gateway_api_events.rs
  • crates/daemon/tests/integration/gateway_api_health.rs
  • crates/daemon/tests/integration/gateway_api_turn.rs
  • crates/daemon/tests/integration/gateway_owner_state.rs
  • crates/daemon/tests/integration/gateway_read_models.rs
  • crates/daemon/tests/integration/import_cli.rs
  • crates/daemon/tests/integration/latest_selector_process_support.rs
  • crates/daemon/tests/integration/logging.rs
  • crates/daemon/tests/integration/managed_bridge_fixtures.rs
  • crates/daemon/tests/integration/managed_bridge_parity.rs
  • crates/daemon/tests/integration/mcp.rs
  • crates/daemon/tests/integration/memory_context_benchmark_cli.rs
  • crates/daemon/tests/integration/migrate_cli.rs
  • crates/daemon/tests/integration/migration.rs
  • crates/daemon/tests/integration/mod.rs
  • crates/daemon/tests/integration/multi_channel_serve_cli.rs
  • crates/daemon/tests/integration/onboard_cli.rs
  • crates/daemon/tests/integration/personalize_cli.rs
  • crates/daemon/tests/integration/plugins_cli.rs
  • crates/daemon/tests/integration/programmatic.rs
  • crates/daemon/tests/integration/runtime_capability_cli.rs
  • crates/daemon/tests/integration/runtime_experiment_cli.rs
  • crates/daemon/tests/integration/runtime_restore_cli.rs
  • crates/daemon/tests/integration/runtime_snapshot_cli.rs
  • crates/daemon/tests/integration/runtime_trajectory_cli.rs
  • crates/daemon/tests/integration/session_search_cli.rs
  • crates/daemon/tests/integration/sessions_cli.rs
  • crates/daemon/tests/integration/skills_cli.rs
  • crates/daemon/tests/integration/spec_runtime.rs
  • crates/daemon/tests/integration/spec_runtime_bridge/http_json.rs
  • crates/daemon/tests/integration/spec_runtime_bridge/process_stdio.rs
  • crates/daemon/tests/integration/tasks_cli.rs
  • crates/daemon/tests/integration/trajectory_export_cli.rs
  • crates/daemon/tests/integration/work_unit_cli.rs
  • crates/kernel/Cargo.toml
  • crates/kernel/src/audit.rs
  • crates/kernel/src/awareness.rs
  • crates/kernel/src/clock.rs

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@github-actions github-actions Bot added documentation Improvements or additions to documentation. dependencies Pull requests that update dependency files. github_actions Pull requests that update GitHub Actions code. kernel Kernel policy, approvals, and audit surfaces. contracts Shared contract and type surfaces. protocol Protocol crate and wire-level behavior. spec Architecture boundaries, product specs, and design docs. daemon Daemon binary, CLI entrypoints, and install flow. providers Provider routing, selection, and transport behavior. tools Tool runtime, policy adapters, and tool catalog behavior. browser Browser automation surfaces and related tooling. channels Channel adapters and external integration surfaces. memory Memory system, context assembly, and persistence flow. conversation Conversation runtime, session flow, and prompt assembly. config Runtime config parsing, schema, and defaults. acp ACP manager, binding, routing, and control plane surfaces. migration Onboarding, legacy import, and migration flow. docs Contributor docs, references, and issue/PR guidance. ci CI, workflows, release automation, and repo governance scripts. size: XL Very large pull request: more than 1000 changed lines. labels Apr 8, 2026
@chumyin chumyin force-pushed the work/rebrand-non-doc-20260408 branch 2 times, most recently from b5b1963 to 57b8816 Compare April 8, 2026 11:03
@chumyin chumyin self-assigned this Apr 8, 2026
@chumyin chumyin force-pushed the work/rebrand-non-doc-20260408 branch from 57b8816 to 6597aff Compare April 8, 2026 13:36
@gh-xj
Copy link
Copy Markdown
Collaborator

gh-xj commented Apr 13, 2026

LoongClaw AI scientist review for 6597aff on PR #1108.

Summary

  • Problem:
    • The release workflow no longer packages the dedicated loongclaw compatibility binary, and the default startup path no longer falls back to legacy ~/.loongclaw installs.
  • Why it matters:
    • Published archives lose a compatibility artifact the repo still advertises, and existing operators with only the legacy home are pushed into onboarding on upgrade.
  • What changed:
    • LEGACY_BIN_NAME became loong in CI/release, and default config resolution now points only at ~/.loong/config.toml while legacy-home detection is warning-only.
  • What did not change (scope boundary):
    • install.sh itself still works because it recreates the legacy alias locally; the release regression is the archive/manual-consumer contract, not an immediate installer failure.

Validation

  • bash scripts/test_release_workflow_hardening.sh
  • bash scripts/test_install_sh.sh
  • cargo fmt --all -- --check

These checks passed, but they do not cover the release-archive compatibility contract or the legacy-home default-entry path.

Findings

  • High: .github/workflows/release.yml:15 and .github/workflows/ci.yml:23 collapse LEGACY_BIN_NAME to loong even though crates/daemon/Cargo.toml:96 still defines a real loongclaw binary and the installer/tests still treat it as supported. Published archives therefore stop carrying the compatibility binary for direct archive consumers.
  • Medium: crates/daemon/src/lib.rs:1575 now routes default startup only through ~/.loong/config.toml; crates/daemon/src/main.rs:58 only warns when ~/.loongclaw exists. Legacy-only installs are treated as unconfigured until manually migrated.

Reviewer Focus

  • Reconcile whether loongclaw compatibility is still supposed to exist at the release-artifact layer or only as an installer-created alias.
  • Decide whether legacy-home startup should auto-load, explicitly migrate/import, or intentionally break with a documented plan.

The PR is also currently conflicting with dev, so these findings should be revalidated after rebase.

@gh-xj
Copy link
Copy Markdown
Collaborator

gh-xj commented Apr 13, 2026

LoongClaw AI scientist update: pushed 7332cfa to work/rebrand-non-doc-20260408.

Resolved in branch:

  • removed the remaining packaged loongclaw alias from the release/install path inside this PR scope
  • changed legacy-home first run to open import preview instead of silently treating ~/.loongclaw as the active config
  • updated the affected verification/tests to match the in-scope Loong migration

Verification run on the pushed branch:

  • bash scripts/test_release_workflow_hardening.sh
  • bash scripts/test_install_sh.sh
  • cargo fmt --all -- --check
  • cargo clippy --workspace --all-targets --all-features -- -D warnings
  • cargo test --workspace --locked
  • cargo test --workspace --all-features --locked

Remaining blocker:

  • GitHub still reports this PR as CONFLICTING against dev after the push.
  • I attempted a local rebase onto current dev; it expanded into repo-wide add/add conflicts across hundreds of files, so this now needs a dedicated rebase pass rather than a trivial merge-forward.

@gh-xj gh-xj force-pushed the work/rebrand-non-doc-20260408 branch from 7332cfa to 56a7f44 Compare April 13, 2026 06:51
chumyin added a commit to chumyin/loongclaw that referenced this pull request Apr 13, 2026
… hardening the Feishu webhook stack path

The tracked April architecture drift report is regenerated so governance compares against current repository output again, and the file-event Feishu webhook test now runs through the large-stack harness already used by the other deep callback scenarios. I also relaxed the reply-body assertion to check stable provider-content markers instead of one brittle serialized escape sequence.

Constraint: GitHub Actions governance rejects stale tracked architecture drift reports byte-for-byte after normalization
Constraint: The failing Feishu webhook test aborts CI with stack overflow on Linux and Windows without the large-stack helper
Rejected: Leave the report stale and retry CI | governance would keep failing deterministically
Rejected: Assert the exact escaped markdown payload string | too brittle to survive harmless serialization/layout differences
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Keep new deep Feishu webhook scenarios on the large-stack helper unless the underlying stack usage is reduced enough to remove the need safely
Tested: cargo fmt --all -- --check
Tested: LOONG_ARCH_REPORT_MONTH=2026-04 bash scripts/check_architecture_drift_freshness.sh docs/releases/support/architecture-drift-2026-04.md
Tested: cargo test -p loong-app feishu_webhook_file_event_reaches_provider_as_structured_text_and_replies --lib
Tested: git diff --check
Not-tested: full workspace test matrix rerun locally
Not-tested: GitHub Actions rerun after push
@chumyin chumyin force-pushed the work/rebrand-non-doc-20260408 branch from 4e26311 to 841e8f0 Compare April 13, 2026 16:20
chumyin added a commit to chumyin/loongclaw that referenced this pull request Apr 13, 2026
…e and runtime-facing Loong rebrand

The branch now migrates CODEOWNERS from the archived loongclaw-ai teams to live eastreams teams, after creating the matching teams in eastreams and binding them to eastreams/loong. It also pushes the remaining runtime-facing surfaces toward Loong by promoting _loong internal tool context, x-loong provider headers, loong transcript exports, Loong-first installer env vars, and refreshed onboarding/tool copy, while keeping explicit legacy read paths where active compatibility still matters.

Constraint: eastreams had no teams, so CODEOWNERS could not move safely until matching teams existed in the target org
Constraint: legacy _loongclaw and loongclaw metadata aliases still need compatibility reads for in-flight runtime/tool payloads
Rejected: Leave CODEOWNERS on loongclaw-ai | breaks governance alignment on the target org and leaves reviewers unresolved
Rejected: Remove every loongclaw alias in one pass | too risky for active runtime compatibility and test baselines
Confidence: medium
Scope-risk: broad
Reversibility: messy
Directive: Treat @eastreams/* teams, _loong tool context, and x-loong runtime headers as the primary surfaces; only preserve loongclaw aliases when a compatibility read path is intentional
Tested: cargo check -p loong-app -p loong --all-targets
Tested: cargo clippy -p loong-app -p loong --all-targets -- -D warnings
Tested: cargo test -p loong-app default_export_path_uses_loong_exports_directory --lib
Tested: cargo test -p loong-app augment_tool_payload_injects_visible_tool_ids_for_tool_search --lib
Tested: cargo test -p loong-app append_prompt_cache_headers_inserts_runtime_request_metadata --lib
Tested: cargo test -p loong-app execute_bash_tool_with_config_allows_trusted_internal_context_field --lib
Tested: cargo test -p loong --test integration gateway_acp_
Tested: bash scripts/test_install_sh.sh
Tested: bash scripts/test_check_architecture_drift_freshness.sh
Tested: git diff --check
Not-tested: cargo fmt --all -- --check still reports pre-existing formatting drift in unrelated files outside this change set
Not-tested: full workspace cargo test --workspace --all-features
chumyin added a commit to chumyin/loongclaw that referenced this pull request Apr 13, 2026
… hardening the Feishu webhook stack path

The tracked April architecture drift report is regenerated so governance compares against current repository output again, and the file-event Feishu webhook test now runs through the large-stack harness already used by the other deep callback scenarios. I also relaxed the reply-body assertion to check stable provider-content markers instead of one brittle serialized escape sequence.

Constraint: GitHub Actions governance rejects stale tracked architecture drift reports byte-for-byte after normalization
Constraint: The failing Feishu webhook test aborts CI with stack overflow on Linux and Windows without the large-stack helper
Rejected: Leave the report stale and retry CI | governance would keep failing deterministically
Rejected: Assert the exact escaped markdown payload string | too brittle to survive harmless serialization/layout differences
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Keep new deep Feishu webhook scenarios on the large-stack helper unless the underlying stack usage is reduced enough to remove the need safely
Tested: cargo fmt --all -- --check
Tested: LOONG_ARCH_REPORT_MONTH=2026-04 bash scripts/check_architecture_drift_freshness.sh docs/releases/support/architecture-drift-2026-04.md
Tested: cargo test -p loong-app feishu_webhook_file_event_reaches_provider_as_structured_text_and_replies --lib
Tested: git diff --check
Not-tested: full workspace test matrix rerun locally
Not-tested: GitHub Actions rerun after push
@chumyin
Copy link
Copy Markdown
Collaborator Author

chumyin commented Apr 13, 2026

Pushed 841e8f06 after restacking the branch onto the latest dev again.

This follow-up does three things:

  • absorbs the newest upstream dev dependency drift (tokio 1.51.1) so the PR is no longer merge-dirty
  • regenerates docs/releases/support/architecture-drift-2026-04.md so the governance freshness gate matches current output
  • moves feishu_webhook_file_event_reaches_provider_as_structured_text_and_replies onto the large-stack webhook helper and relaxes one brittle reply-body assertion to stable content markers, which is the exact stack-overflow path that was aborting Linux/Windows test jobs

Fresh local verification on this rebased head:

  • cargo fmt --all -- --check
  • LOONG_ARCH_REPORT_MONTH=2026-04 bash scripts/check_architecture_drift_freshness.sh docs/releases/support/architecture-drift-2026-04.md
  • bash scripts/test_install_sh.sh
  • cargo check -p loong-app -p loong --all-targets
  • cargo clippy -p loong-app -p loong --all-targets -- -D warnings
  • cargo test -p loong-app feishu_webhook_file_event_reaches_provider_as_structured_text_and_replies --lib
  • cargo test -p loong --test integration gateway_acp_
  • git diff --check

GitHub now reports the PR as mergeable again and the new check suite is queued on 841e8f06.

chumyin added a commit to chumyin/loongclaw that referenced this pull request Apr 13, 2026
…e and runtime-facing Loong rebrand

The branch now migrates CODEOWNERS from the archived loongclaw-ai teams to live eastreams teams, after creating the matching teams in eastreams and binding them to eastreams/loong. It also pushes the remaining runtime-facing surfaces toward Loong by promoting _loong internal tool context, x-loong provider headers, loong transcript exports, Loong-first installer env vars, and refreshed onboarding/tool copy, while keeping explicit legacy read paths where active compatibility still matters.

Constraint: eastreams had no teams, so CODEOWNERS could not move safely until matching teams existed in the target org
Constraint: legacy _loongclaw and loongclaw metadata aliases still need compatibility reads for in-flight runtime/tool payloads
Rejected: Leave CODEOWNERS on loongclaw-ai | breaks governance alignment on the target org and leaves reviewers unresolved
Rejected: Remove every loongclaw alias in one pass | too risky for active runtime compatibility and test baselines
Confidence: medium
Scope-risk: broad
Reversibility: messy
Directive: Treat @eastreams/* teams, _loong tool context, and x-loong runtime headers as the primary surfaces; only preserve loongclaw aliases when a compatibility read path is intentional
Tested: cargo check -p loong-app -p loong --all-targets
Tested: cargo clippy -p loong-app -p loong --all-targets -- -D warnings
Tested: cargo test -p loong-app default_export_path_uses_loong_exports_directory --lib
Tested: cargo test -p loong-app augment_tool_payload_injects_visible_tool_ids_for_tool_search --lib
Tested: cargo test -p loong-app append_prompt_cache_headers_inserts_runtime_request_metadata --lib
Tested: cargo test -p loong-app execute_bash_tool_with_config_allows_trusted_internal_context_field --lib
Tested: cargo test -p loong --test integration gateway_acp_
Tested: bash scripts/test_install_sh.sh
Tested: bash scripts/test_check_architecture_drift_freshness.sh
Tested: git diff --check
Not-tested: cargo fmt --all -- --check still reports pre-existing formatting drift in unrelated files outside this change set
Not-tested: full workspace cargo test --workspace --all-features
chumyin added a commit to chumyin/loongclaw that referenced this pull request Apr 13, 2026
… hardening the Feishu webhook stack path

The tracked April architecture drift report is regenerated so governance compares against current repository output again, and the file-event Feishu webhook test now runs through the large-stack harness already used by the other deep callback scenarios. I also relaxed the reply-body assertion to check stable provider-content markers instead of one brittle serialized escape sequence.

Constraint: GitHub Actions governance rejects stale tracked architecture drift reports byte-for-byte after normalization
Constraint: The failing Feishu webhook test aborts CI with stack overflow on Linux and Windows without the large-stack helper
Rejected: Leave the report stale and retry CI | governance would keep failing deterministically
Rejected: Assert the exact escaped markdown payload string | too brittle to survive harmless serialization/layout differences
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Keep new deep Feishu webhook scenarios on the large-stack helper unless the underlying stack usage is reduced enough to remove the need safely
Tested: cargo fmt --all -- --check
Tested: LOONG_ARCH_REPORT_MONTH=2026-04 bash scripts/check_architecture_drift_freshness.sh docs/releases/support/architecture-drift-2026-04.md
Tested: cargo test -p loong-app feishu_webhook_file_event_reaches_provider_as_structured_text_and_replies --lib
Tested: git diff --check
Not-tested: full workspace test matrix rerun locally
Not-tested: GitHub Actions rerun after push
@chumyin chumyin force-pushed the work/rebrand-non-doc-20260408 branch from 841e8f0 to 5d59c22 Compare April 13, 2026 17:00
@chumyin
Copy link
Copy Markdown
Collaborator Author

chumyin commented Apr 13, 2026

Pushed 5d59c22e after restacking the branch onto the latest dev again and clearing the remaining strict-governance blockers.

What this push adds beyond the previous rebrand/governance pass:

  • extracts the large inline ACP and daemon test modules into dedicated files so crates/app/src/acp/acpx.rs and crates/daemon/src/lib.rs drop back under the strict architecture budgets without changing runtime behavior
  • keeps the Feishu webhook file-event regression on the large-stack helper, which removes the Linux/Windows stack-overflow abort that was still breaking the test matrix
  • fixes the drift-report generator so freshness comparisons use a stable logical report path even when the generated comparison file lives in /tmp
  • regenerates the April drift reports (docs/releases/support/architecture-drift-2026-04.md and docs/releases/architecture-drift-2026-04.md) to match the new post-shrink architecture metrics and current link layout

Fresh local verification on the rebased head:

  • cargo fmt --all -- --check
  • LOONG_ARCH_REPORT_MONTH=2026-04 bash scripts/check_architecture_drift_freshness.sh docs/releases/support/architecture-drift-2026-04.md
  • scripts/bootstrap_release_local_artifacts.sh
  • LOONG_RELEASE_DOCS_STRICT=1 scripts/check-docs.sh
  • ./scripts/check_dep_graph.sh
  • LOONG_ARCH_STRICT=true ./scripts/check_architecture_boundaries.sh
  • bash scripts/test_install_sh.sh
  • cargo check -p loong-app -p loong --all-targets
  • cargo clippy -p loong-app -p loong --all-targets -- -D warnings
  • cargo test -p loong-app feishu_webhook_file_event_reaches_provider_as_structured_text_and_replies --lib
  • cargo test -p loong --test integration gateway_acp_
  • git diff --check

GitHub currently reports the PR as mergeable again (mergeable: true / checks pending) on 5d59c22e.

chumyin added a commit to chumyin/loongclaw that referenced this pull request Apr 14, 2026
Instead of repeatedly rebasing the old PR history onto a rapidly moving dev branch, this checkpoint starts a fresh rebuild on top of the latest dev head and reapplies the low-conflict/high-value rebrand slices first. It restores the CODEOWNERS migration to real eastreams teams, keeps the installer and transcript/export/Tlon/onboarding/status surfaces aligned with Loong-first naming, and ports the first runtime/tool compatibility layer (_loong internal context, x-loong provider headers, browser scope compatibility, and the ACP timeout probe fix) while preserving enough compatibility for the current dev test matrix to compile.

Constraint: latest dev is absorbing overlapping chat/provider/tools/runtime work fast enough that replaying the original PR commit stack causes large recurring conflicts
Constraint: current daemon/app integration tests still compile against legacy crate/binary import names, so the rebuild uses package-name migration plus compatibility dependency keys/lib entrypoints where needed
Rejected: Keep restacking the original 7-commit PR history onto every new dev head | too conflict-heavy and unstable to close the branch efficiently
Rejected: Drop the legacy compile-time entrypoints immediately on the rebuild branch | would break the current latest-dev test matrix before the rest of the rebrand is restabilized
Confidence: medium
Scope-risk: moderate
Reversibility: clean
Directive: Continue the rebuild by porting the remaining high-conflict runtime/provider/chat surfaces in small, verified layers instead of reviving the old large conflict set wholesale
Tested: cargo fmt --all -- --check
Tested: cargo check -p loong-app -p loong --all-targets
Tested: cargo clippy -p loong-app -p loong --all-targets -- -D warnings
Tested: bash scripts/test_install_sh.sh
Tested: cargo test -p loong-app default_export_path_uses_loong_exports_directory --lib
Tested: cargo test -p loong-app augment_tool_payload_injects_visible_tool_ids_for_tool_search --lib
Tested: cargo test -p loong-app append_prompt_cache_headers_inserts_runtime_request_metadata --lib
Tested: cargo test -p loong --test integration gateway_acp_
Not-tested: full workspace test matrix on the rebuild branch
Not-tested: GitHub Actions on a replacement PR head yet
@chumyin chumyin force-pushed the work/rebrand-non-doc-20260408 branch from f2af199 to 3c0d9fd Compare April 14, 2026 13:52
@github-actions github-actions Bot removed memory Memory system, context assembly, and persistence flow. migration Onboarding, legacy import, and migration flow. docs Contributor docs, references, and issue/PR guidance. labels Apr 14, 2026
@chumyin
Copy link
Copy Markdown
Collaborator Author

chumyin commented Apr 14, 2026

Pushed 3c0d9fd8 and then feb3fe2d after continuing the latest-dev rebuild lane instead of reviving the old dirty stack directly.

What this continuation adds:

  • tightens active runtime/config surfaces onto LoongConfig / from_loong_config(...) in the app runtime path without regressing current dev coordinator/runtime behavior
  • adds a first-class runtime_tool_view_from_loong_config(...) helper while keeping the legacy helper as a compatibility bridge
  • makes onboard test executable resolution prefer LOONG_TEST_ONBOARD_EXECUTABLE with fallback to LOONGCLAW_TEST_ONBOARD_EXECUTABLE
  • keeps provider parse telemetry dual-written under both loong_provider_parse and loongclaw_provider_parse
  • moves the default provider profile-state file path onto the Loong home directory
  • refreshes generated GitHub label artifacts so the governance lane no longer fails on issue-template drift

Safety / branch-management notes:

  • preserved the previous PR head remotely as backup/pr1108-f2af1997-20260414 before updating the PR branch
  • updated work/rebrand-non-doc-20260408 with --force-with-lease so the rebuild line replaces the stale conflicted head in a recoverable way

Local verification run for this continuation:

  • cargo fmt --all -- --check
  • cargo clippy -p loong-app --lib -- -D warnings
  • cargo test -p loong-app build_onboard_command_prefers_loong_test_override --lib
  • cargo test -p loong-app build_onboard_command_falls_back_to_legacy_override --lib
  • cargo test -p loong-app reload_cli_turn_config_refreshes_provider_state_without_mutating_cli_settings --lib
  • cargo test -p loong-app file_profile_state_backend_defaults_to_loong_home --lib
  • cargo test -p loong-app build_base_messages_with_binding_skips_runtime_self_reads_when_disabled --lib
  • cargo test -p loong-app default_engine_assembles_runtime_self_through_kernel_audit_path --lib
  • cargo test -p loong-app append_prompt_cache_headers_inserts_runtime_request_metadata --lib
  • cargo test -p loong-app extract_provider_turn_parses_plain_json_tool_block --lib
  • cargo test -p loong-app extract_provider_turn_parses_function_calls_invoke_blocks --lib
  • cargo test -p loong-app extract_provider_turn_records_malformed_inline_function_telemetry --lib
  • python3 scripts/sync_github_labels.py --write
  • python3 scripts/sync_github_labels.py --check
  • bash scripts/test_sync_github_labels.sh
  • git diff --check

Known local-only verification gap:

  • cargo check -p loong --bin loong still trips a local rustup target-install conflict in this workstation environment (rust-std-i686-unknown-linux-musl rollback), which appears unrelated to the code changes above; GitHub CI is now re-running on feb3fe2d.

Also rechecked the org-side setup while continuing this lane: the eastreams teams referenced by CODEOWNERS (doc-ops, efficiency-engineering, harness, release-managers, sec-ops, ui, ux) are already present, so no further org bootstrap was needed in this pass.

@chumyin
Copy link
Copy Markdown
Collaborator Author

chumyin commented Apr 14, 2026

Follow-up push sequence completed on top of the latest-dev rebuild lane:

  • 2cd4f4d5 restored rebrand-compatible governance and benchmark/stress script entrypoints
  • 073d8fc5 aligned release-doc strict gating with the Loong-first workflow env while preserving the legacy alias in check-docs.sh
  • 679b8f63 refreshed the April 2026 architecture drift reports after the runtime/config cleanup changed hotspot metrics

Result on current PR head 679b8f63:

  • governance
  • perf-lint
  • aggregate build gate ✅

The visible blocker is no longer CI failure or merge dirt; GitHub now shows the branch as blocked by review (reviewDecision: REVIEW_REQUIRED).

Remote safety note: the previous pre-rebuild PR head was preserved as backup/pr1108-f2af1997-20260414 before the PR branch was restacked with --force-with-lease.

chumyin added a commit to chumyin/loongclaw that referenced this pull request Apr 15, 2026
…t surfaces

The PR's Loong-first package and runtime rename was directionally correct,
but it left three real breakpoints behind: renamed library crates no longer
matched existing imports/tests, installer compatibility seams were removed
while the repo still advertised them, and newer Loong env/context keys were
introduced without end-to-end entrypoint coverage.

This patch keeps the Loong-facing package/runtime progression while restoring
the compatibility guarantees that current users and the repo contract still
assume. It also updates the affected tests to assert the new Loong branding
without regressing the guarded behavior they were meant to protect.

Constraint: PR eastreams#1108 already renames package identities and runtime-facing names, so the fix had to preserve that direction instead of rolling the rebrand back
Rejected: Remove legacy installer/env/bin seams now | breaks documented and exercised compatibility surfaces during the migration window
Rejected: Rename every remaining test/import to new crate names only | larger churn than necessary and drops useful compatibility aliases
Confidence: high
Scope-risk: moderate
Reversibility: clean
Directive: Keep dual-read and dual-entry compatibility in place until release/install/docs contracts no longer advertise the legacy seams
Tested: bash scripts/test_install_sh.sh
Tested: bash scripts/check_dep_graph.sh
Tested: ./scripts/check_architecture_boundaries.sh
Tested: cargo clippy --workspace --all-targets --all-features --target aarch64-apple-darwin -- -D warnings
Tested: cargo test --workspace --all-features --target aarch64-apple-darwin
Not-tested: GitHub Actions after the new commit
chumyin added 10 commits April 15, 2026 19:47
Instead of repeatedly rebasing the old PR history onto a rapidly moving dev branch, this checkpoint starts a fresh rebuild on top of the latest dev head and reapplies the low-conflict/high-value rebrand slices first. It restores the CODEOWNERS migration to real eastreams teams, keeps the installer and transcript/export/Tlon/onboarding/status surfaces aligned with Loong-first naming, and ports the first runtime/tool compatibility layer (_loong internal context, x-loong provider headers, browser scope compatibility, and the ACP timeout probe fix) while preserving enough compatibility for the current dev test matrix to compile.

Constraint: latest dev is absorbing overlapping chat/provider/tools/runtime work fast enough that replaying the original PR commit stack causes large recurring conflicts
Constraint: current daemon/app integration tests still compile against legacy crate/binary import names, so the rebuild uses package-name migration plus compatibility dependency keys/lib entrypoints where needed
Rejected: Keep restacking the original 7-commit PR history onto every new dev head | too conflict-heavy and unstable to close the branch efficiently
Rejected: Drop the legacy compile-time entrypoints immediately on the rebuild branch | would break the current latest-dev test matrix before the rest of the rebrand is restabilized
Confidence: medium
Scope-risk: moderate
Reversibility: clean
Directive: Continue the rebuild by porting the remaining high-conflict runtime/provider/chat surfaces in small, verified layers instead of reviving the old large conflict set wholesale
Tested: cargo fmt --all -- --check
Tested: cargo check -p loong-app -p loong --all-targets
Tested: cargo clippy -p loong-app -p loong --all-targets -- -D warnings
Tested: bash scripts/test_install_sh.sh
Tested: cargo test -p loong-app default_export_path_uses_loong_exports_directory --lib
Tested: cargo test -p loong-app augment_tool_payload_injects_visible_tool_ids_for_tool_search --lib
Tested: cargo test -p loong-app append_prompt_cache_headers_inserts_runtime_request_metadata --lib
Tested: cargo test -p loong --test integration gateway_acp_
Not-tested: full workspace test matrix on the rebuild branch
Not-tested: GitHub Actions on a replacement PR head yet
…elease-support surfaces

This checkpoint ports the remaining low-conflict workflow and release-governance slices onto the fresh latest-dev rebuild branch. It keeps CI/release/task surfaces aligned with the current Loong-first environment variable names and package names where safe, refreshes the tracked April drift reports, and fixes the drift-report generator/freshness scripts so support reports keep stable relative links even when comparison output is emitted outside the repo tree.

Constraint: latest dev still uses older release-doc/link-generation assumptions, so the rebuild must refresh the tracked reports and script logic together to keep strict doc governance green
Constraint: the latest-dev rebuild branch must avoid reintroducing the old large conflict set, so this checkpoint only carries the low-conflict governance/workflow/doc-support layer
Rejected: Leave the root April drift report untracked and only refresh the support copy | strict doc governance still scans the root docs/releases report and would keep failing on stale dead links
Rejected: Defer workflow/env-surface cleanup until after the high-conflict runtime rebuild | leaves the branch with avoidable governance and release-surface drift while deeper porting continues
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Keep using small, independently verifiable checkpoints on the rebuild branch; do not batch workflow/doc-support fixes back into the larger runtime/provider conflict set
Tested: cargo fmt --all -- --check
Tested: LOONG_ARCH_REPORT_MONTH=2026-04 bash scripts/check_architecture_drift_freshness.sh docs/releases/support/architecture-drift-2026-04.md
Tested: scripts/bootstrap_release_local_artifacts.sh
Tested: LOONG_RELEASE_DOCS_STRICT=1 scripts/check-docs.sh
Tested: bash scripts/test_install_sh.sh
Tested: cargo check -p loong-app -p loong --all-targets
Not-tested: GitHub Actions on the rebuild branch yet
Not-tested: full workspace test matrix on the rebuild branch
…ping legacy metadata

This checkpoint moves the app build metadata and presentation layer to Loong-first naming so the rebuilt latest-dev branch no longer depends on LOONGCLAW_* build envs or LOONGCLAW banner text as the primary surface. It keeps backward compatibility by accepting legacy LOONGCLAW_* env overrides and emitting both new and legacy rustc env keys while the rest of the stack is still being rebuilt.

Constraint: the rebuild branch already switched several workflow and runtime surfaces to LOONG_* names, so keeping build metadata hard-wired to LOONGCLAW_* would leave binary identity and CI inputs inconsistent
Constraint: current dev still contains legacy readers, so the build layer must preserve LOONGCLAW_* compatibility while introducing LOONG_* as the primary path
Rejected: Flip build metadata to LOONG_* only in one step | risks breaking remaining legacy readers before the rest of the rebuild is finished
Rejected: Leave presentation banners on LOONGCLAW until the very end | keeps the user-facing runtime identity inconsistent with the rebuilt workflow/runtime surfaces
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Keep LOONG_* as the primary build/presentation surface, but preserve LOONGCLAW_* compatibility only where older code still consumes build metadata during the rebuild period
Tested: cargo fmt --all -- --check
Tested: cargo check -p loong-app -p loong --all-targets
Tested: cargo test -p loong-app default_export_path_uses_loong_exports_directory --lib
Tested: cargo test -p loong-app augment_tool_payload_injects_visible_tool_ids_for_tool_search --lib
Not-tested: full workspace test matrix on the rebuild branch
Not-tested: GitHub Actions on a replacement PR head yet
… readers

This checkpoint ports the next identity layer onto the latest-dev rebuild branch: Loong becomes the primary config display name, audit defaults resolve under the Loong home path, context-engine selection accepts LOONG_CONTEXT_ENGINE first, and runtime config/env handling recognizes LOONG_CONFIG_PATH and LOONG_WEB_SEARCH_PROVIDER while preserving LOONGCLAW_* compatibility. The goal is to make the rebuilt branch's user- and operator-facing config surface consistent with the earlier workflow/build/runtime rebrand checkpoints without forcing an immediate break from legacy env readers.

Constraint: the latest-dev branch still has broad LOONGCLAW_* env usage, so the rebuild must prefer Loong-first names while keeping compatibility reads and writes until the deeper runtime port is finished
Rejected: Flip every runtime/config env to LOONG_* only in one pass | too risky while many latest-dev modules still read the legacy names directly
Rejected: Leave product/config identity on LoongClaw until the very end | keeps workflows, build metadata, installer guidance, and config/runtime identity internally inconsistent
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Prefer LOONG_* for new guidance and primary reads, but keep legacy LOONGCLAW_* compatibility paths until the whole runtime surface is rebuilt on latest dev
Tested: cargo fmt --all -- --check
Tested: bash scripts/test_install_sh.sh
Tested: cargo check -p loong-app -p loong --all-targets
Tested: cargo test -p loong-app augment_tool_payload_injects_visible_tool_ids_for_tool_search --lib
Tested: cargo test -p loong-app default_export_path_uses_loong_exports_directory --lib
Not-tested: full workspace test matrix on the rebuild branch
Not-tested: GitHub Actions on a replacement PR head yet
…trypoints

This restack tightens the latest-dev rebuild branch around the active runtime surfaces rather than reviving older PR-era behavior. It moves app-facing runtime/config helpers onto Loong-first type names, adds a first-class runtime tool-view helper, keeps provider parse telemetry dual-written under both Loong and legacy keys, and makes onboard test executable discovery prefer the new env name while preserving the legacy fallback.

It also moves the default provider profile-state file path onto the Loong home directory and locks the new compatibility behavior with focused unit coverage. The goal is to keep the non-doc rebrand progressing on current dev without regressing daemon/runtime API evolution or breaking existing payload/tooling consumers that still speak legacy aliases.

Constraint: Current latest-dev still needs legacy runtime aliases and metadata keys for compatibility
Constraint: The PR branch is being rebuilt on top of moving dev history, so changes must stay low-conflict and behavior-preserving
Rejected: Hard-cut legacy provider parse metadata keys immediately | too risky for downstream readers and old fixtures
Rejected: Revive older PR branch logic wholesale | would reintroduce stale API behavior against current dev
Confidence: high
Scope-risk: moderate
Reversibility: clean
Directive: Keep Loong-first names primary in runtime-facing code, but preserve legacy fallbacks until the Cargo/dependency-level alias migration is planned separately
Tested: cargo fmt --all -- --check; cargo clippy -p loong-app --lib -- -D warnings; cargo test -p loong-app build_onboard_command_prefers_loong_test_override --lib; cargo test -p loong-app build_onboard_command_falls_back_to_legacy_override --lib; cargo test -p loong-app reload_cli_turn_config_refreshes_provider_state_without_mutating_cli_settings --lib; cargo test -p loong-app file_profile_state_backend_defaults_to_loong_home --lib; cargo test -p loong-app build_base_messages_with_binding_skips_runtime_self_reads_when_disabled --lib; cargo test -p loong-app default_engine_assembles_runtime_self_through_kernel_audit_path --lib; cargo test -p loong-app append_prompt_cache_headers_inserts_runtime_request_metadata --lib; cargo test -p loong-app extract_provider_turn_parses_plain_json_tool_block --lib; cargo test -p loong-app extract_provider_turn_parses_function_calls_invoke_blocks --lib; cargo test -p loong-app extract_provider_turn_records_malformed_inline_function_telemetry --lib
Not-tested: cargo check -p loong --bin loong still hits a local rustup target-install conflict unrelated to these code changes
The PR restack left the bug-report issue template out of sync with the generated label taxonomy artifacts. Refreshing the generated template keeps the governance lane reproducible and avoids blocking the rebuilt rebrand branch on repository policy drift rather than runtime code behavior.

Constraint: Governance CI treats generated label taxonomy artifacts as checked-in source of truth
Rejected: Hand-edit the issue template wording only | would leave the generator/check pipeline inconsistent
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: When rebrand or workflow restacks touch governance surfaces, rerun scripts/sync_github_labels.py before pushing to keep generated issue-template artifacts aligned
Tested: python3 scripts/sync_github_labels.py --write; python3 scripts/sync_github_labels.py --check; bash scripts/test_sync_github_labels.sh; git diff --check
Not-tested: Full governance GitHub Actions lane rerun after push remains pending
The rebuilt PR branch was still carrying script-level seams where the active Loong-first naming no longer matched test fixtures or workspace package names. This update makes the architecture drift generators/freshness checks honor Loong-first env names while still accepting the legacy LOONGCLAW overrides used by existing regression tests, and it retargets benchmark/perf/stress script Cargo entrypoints at the current workspace package name.

The goal is to keep the latest-dev rebuild mature at the governance and CI edge: generated drift reports should stay reproducible regardless of whether callers still export legacy env names, and perf/stress harnesses should stop failing on stale package identifiers after the package rename.

Constraint: Governance and perf lanes still exercise legacy LOONGCLAW_* env overrides in checked-in shell tests
Constraint: Workspace package names have already moved to loong, so script entrypoints must not lag behind the rename
Rejected: Update only the failing CI script and leave other benchmark/stress entrypoints stale | would leave the PR with known adjacent breakage
Rejected: Drop legacy architecture-drift env aliases entirely | would break the existing regression fixtures and slow the rebuild lane
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Keep shell entrypoints aligned with current workspace package names, but continue honoring legacy env aliases where checked-in governance tests still depend on them
Tested: bash scripts/test_generate_architecture_drift_report.sh; bash scripts/test_check_architecture_drift_freshness.sh; bash scripts/test_architecture_budget_scripts.sh; bash scripts/test_stress_daemon_tests.sh; bash scripts/test_sync_github_labels.sh; bash -n scripts/generate_architecture_drift_report.sh scripts/check_architecture_drift_freshness.sh scripts/lint_programmatic_pressure_baseline.sh scripts/benchmark_programmatic_pressure.sh scripts/benchmark_wasm_cache.sh scripts/stress_daemon_tests.sh; git diff --check
Not-tested: ./scripts/lint_programmatic_pressure_baseline.sh still hits the same local rustup target-install conflict after moving past the stale package-name failure, so final proof for that lane is deferred to GitHub Actions
The release workflow had already moved to LOONG_RELEASE_DOCS_STRICT, but the doc-check script and its hardening regression still assumed the legacy LOONGCLAW name. That mismatch left governance CI red even after the restack because the workflow and the checked-in policy test no longer described the same contract.

This change makes the docs gate prefer the Loong-first env name while preserving the legacy alias as a fallback, and updates the workflow hardening test to assert the current workflow contract. That keeps the strict docs lane compatible for older callers without letting governance drift behind the active release workflow.

Constraint: Release workflow already exports the Loong-first strict-docs env name in CI
Constraint: Existing local/bootstrap tests still invoke the legacy env name and should not be broken during the rebuild lane
Rejected: Update only the regression test string | would leave check-docs.sh itself inconsistent with the live workflow
Rejected: Remove the legacy alias now | unnecessary compatibility break during PR stabilization
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Treat release-doc strict gating like other rebrand surfaces: new env name first, legacy alias second, and keep the workflow tests pinned to the live workflow contract
Tested: bash scripts/test_release_workflow_hardening.sh; bash scripts/test_bootstrap_release_local_artifacts.sh; bash -n scripts/check-docs.sh scripts/test_release_workflow_hardening.sh; git diff --check
Not-tested: Full GitHub governance lane rerun after push remains pending
The latest runtime/config and script cleanup changed several tracked hotspot metrics, so the committed April 2026 architecture drift reports no longer matched the generated governance artifacts. Refreshing both the support-path report and the root release-path mirror keeps the release-governance evidence aligned with the rebuilt PR branch and clears the freshness gate without changing product behavior.

Constraint: Governance CI requires the tracked support drift report to match freshly generated architecture metrics
Constraint: The repo keeps both support-path and root release-path drift reports in sync for release review surfaces
Rejected: Update only the support report to satisfy the immediate gate | would leave the mirrored root report stale and invite the next governance mismatch
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Whenever hotspot-touching code lands on this branch, refresh both April 2026 drift reports together instead of patching only the support copy
Tested: LOONG_ARCH_REPORT_MONTH=2026-04 scripts/generate_architecture_drift_report.sh docs/releases/support/architecture-drift-2026-04.md; LOONG_ARCH_REPORT_MONTH=2026-04 scripts/generate_architecture_drift_report.sh docs/releases/architecture-drift-2026-04.md; LOONG_ARCH_REPORT_MONTH=2026-04 bash scripts/check_architecture_drift_freshness.sh docs/releases/support/architecture-drift-2026-04.md; git diff --check
Not-tested: Full GitHub governance lane rerun after push remains pending
…t surfaces

The PR's Loong-first package and runtime rename was directionally correct,
but it left three real breakpoints behind: renamed library crates no longer
matched existing imports/tests, installer compatibility seams were removed
while the repo still advertised them, and newer Loong env/context keys were
introduced without end-to-end entrypoint coverage.

This patch keeps the Loong-facing package/runtime progression while restoring
the compatibility guarantees that current users and the repo contract still
assume. It also updates the affected tests to assert the new Loong branding
without regressing the guarded behavior they were meant to protect.

Constraint: PR eastreams#1108 already renames package identities and runtime-facing names, so the fix had to preserve that direction instead of rolling the rebrand back
Rejected: Remove legacy installer/env/bin seams now | breaks documented and exercised compatibility surfaces during the migration window
Rejected: Rename every remaining test/import to new crate names only | larger churn than necessary and drops useful compatibility aliases
Confidence: high
Scope-risk: moderate
Reversibility: clean
Directive: Keep dual-read and dual-entry compatibility in place until release/install/docs contracts no longer advertise the legacy seams
Tested: bash scripts/test_install_sh.sh
Tested: bash scripts/check_dep_graph.sh
Tested: ./scripts/check_architecture_boundaries.sh
Tested: cargo clippy --workspace --all-targets --all-features --target aarch64-apple-darwin -- -D warnings
Tested: cargo test --workspace --all-features --target aarch64-apple-darwin
Not-tested: GitHub Actions after the new commit
@chumyin chumyin force-pushed the work/rebrand-non-doc-20260408 branch from 0eb9246 to 9efa46d Compare April 15, 2026 12:11
@chumyin chumyin merged commit 9efa46d into eastreams:dev Apr 15, 2026
16 of 18 checks passed
@chumyin chumyin deleted the work/rebrand-non-doc-20260408 branch April 15, 2026 12:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

acp ACP manager, binding, routing, and control plane surfaces. browser Browser automation surfaces and related tooling. channels Channel adapters and external integration surfaces. ci CI, workflows, release automation, and repo governance scripts. config Runtime config parsing, schema, and defaults. contracts Shared contract and type surfaces. conversation Conversation runtime, session flow, and prompt assembly. daemon Daemon binary, CLI entrypoints, and install flow. dependencies Pull requests that update dependency files. documentation Improvements or additions to documentation. github_actions Pull requests that update GitHub Actions code. kernel Kernel policy, approvals, and audit surfaces. protocol Protocol crate and wire-level behavior. providers Provider routing, selection, and transport behavior. size: XL Very large pull request: more than 1000 changed lines. spec Architecture boundaries, product specs, and design docs. tools Tool runtime, policy adapters, and tool catalog behavior.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature]: Finish the code-facing Loong rebrand outside the docs lane

2 participants