Skip to content

Export profile clear API from the public C ABI #836

Description

@wieslawsoltes

Problem

The V8-enabled native package build fails while linking webscene_native_engine_tests because webscene_profile_clear_data_v1 is declared as a public C ABI function but its definition is nested inside the scene-acquisition anonymous namespace.

Observed in the exact package gate for PR #835 (run 35509963213, Linux job 106076080246):

undefined symbol: webscene_profile_clear_data_v1
referenced by test_durable_profile_restart_contract

The shared-library translation unit compiles, but the function has internal linkage, so consumers cannot resolve the advertised ABI.

Proposed fix

  • close the scene helper anonymous namespace before defining webscene_profile_clear_data_v1;
  • keep the public function in the surrounding extern "C" block;
  • add a regression that verifies the compiled object exposes the public symbol and does not retain a local anonymous-namespace copy;
  • run the focused native package/link gate on Linux and Windows.

Acceptance

  • webscene_native_engine_tests links with V8 enabled;
  • durable profile restart/clear coverage passes;
  • packaged native library exports webscene_profile_clear_data_v1 on supported platforms;
  • no change to the ABI signature or profile clearing behavior.

Activity

  1. added
    bugSomething isn't working
    vscode-oss/plannedPlanned for the AppScene/WebScene VS Code OSS integration
    on Sep 20, 2026
  2. wieslawsoltes commented on Sep 20, 2026

    @wieslawsoltes
    CollaboratorAuthor

    PR #837 carries the focused fix at 9a094337: the scene helper namespace closes before webscene_profile_clear_data_v1, leaving the function in the surrounding public extern "C" block while all scene helpers retain internal linkage.

    Exact-head gates:

    • portable V8 contract: passed;
    • native Linux document contracts: passed;
    • exact NuGet/native Runtime package run: 35510426945, Linux and Windows in progress.

    This is the cumulative top of #823 → #824 → #829 → #830 → #831 → #833 → #835 → #837. The stack will merge in order after the related Linux/Windows package jobs link and test the public symbol.

  3. added
    vscode-oss/mergedMerged for the AppScene/WebScene VS Code OSS integration
    and removed
    vscode-oss/plannedPlanned for the AppScene/WebScene VS Code OSS integration
    on Sep 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingvscode-oss/mergedMerged for the AppScene/WebScene VS Code OSS integration

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions