Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🔒 Security & Privacy | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
Repository: AI45Lab/SAfactory
Length of output: 274
🌐 Web query:
pip Git URL Git commit hash tag support @ tag commit💡 Result:
Pip supports installing from Git repositories by specifying a Git reference (such as a branch, tag, or commit hash) using the @ symbol appended to the URL [1][2][3]. The standard syntax is: ProjectName @ git+https://git.example.com/MyProject.git@ Supported formats for include: - Branch names (e.g.,
@main,@develop) [1][4][5] - Tag names (e.g.,@v1.0) [1][6] - Commit hashes (e.g.,@da39a3ee5e6b4b0d3255bfef95601890afd80709) [1][2][3] - Other Git references (e.g.,@refs/pull/123/head) [1][2][3] Key considerations: - Specification Logic: Pip follows a specific resolution order when encountering a reference [7]. It first attempts to resolve the provided string as a branch or tag name [7][8]. If no matching branch or tag is found, it proceeds to treat the string as a commit hash [7][8]. - Full vs. Partial Hashes: While pip accepts both, it is highly recommended to use the full 40-character commit hash [1][2][3]. Using a full hash is more efficient as it often allows pip to avoid extra network calls or redundant operations [1][2][3]. - Immutability: For repeatable builds and secure, deterministic installs, you should always prefer pinning to specific tags or full commit hashes rather than moving branch names [9][5]. - Requirements Files: You can use this same syntax directly within a requirements.txt file [9][5]. When used there, the Direct URL syntax (PackageName @ URL) is preferred for clarity and reproducibility [9][5]. Example usage: pip install "MyProject @ git+https://git.example.com/MyProject.git@v1.0" pip install "MyProject @ git+https://git.example.com/MyProject.git@da39a3ee5e6b4b0d3255bfef95601890afd80709"Citations:
Pin the Git dependency to a fixed commit hash.
wt-data-platform-sdkcurrently installs from the mutablev0.4.1Git tag. Change the requirement to the fixed commit and keep the version identifier in a comment for traceability.🤖 Prompt for AI Agents
Source: MCP tools
🗄️ Data Integrity & Integration | 🟠 Major | 🏗️ Heavy lift
🧩 Analysis chain
🏁 Script executed:
Repository: AI45Lab/SAfactory
Length of output: 4774
🏁 Script executed:
Repository: AI45Lab/SAfactory
Length of output: 246
🌐 Web query:
AI45Lab wt-data-platform-sdk v0.4.1 WT_SDK_PROFILE production test default💡 Result:
The wt-data-platform-sdk is a component used within the AI45Lab ecosystem, specifically associated with the Safactory project, to handle the persistence of trajectory and environment data to an S3-backed LanceDB data platform [1]. When configuring the environment for this SDK, the WT_SDK_PROFILE environment variable is used to specify the operational environment [1]. The supported values for WT_SDK_PROFILE are: production: Selects the production landing and serving tables [1]. test: Selects the test tables [1]. default: (While often implied as a fallback in such configurations, the primary explicit documentation for Safactory highlights production and test as the two specific profile options for data platform interaction) [1]. To use the SDK, you define your data platform connection settings in a local.env file, including the WT_SDK_PROFILE and other required variables like WT_SDK_DB_URI and AWS credentials [1]. You must also set the gateway storage_type to cloud and launch the application with the --storage-type cloud flag to enable this functionality [1]. For detailed guidance on table configuration and data retrieval, you should refer to the official AI45Lab/wt-data-platform-sdk repository [1].
Citations:
🏁 Script executed:
Repository: AI45Lab/SAfactory
Length of output: 12942
🌐 Web query:
GitHub AI45Lab wt-data-platform-sdk v0.4.0 config.py WT_SDK_PROFILE production default💡 Result:
The wt-data-platform-sdk is a component used by the AI45Lab organization (GitHub organization AI45Lab) to manage persistent data storage—specifically for trajectory and environment data—within its agentic infrastructure projects, such as Safactory [1]. Regarding the configuration of WT_SDK_PROFILE, it is used to determine the environment context for the SDK's operations, such as selecting between production and test databases/tables [1]. In typical usage of the wt-data-platform-sdk, you configure the environment by setting the WT_SDK_PROFILE variable along with other connection parameters [1]: 1. WT_SDK_PROFILE: Set this to 'production' to target production landing or serving tables, or 'test' for test tables [1]. 2. Other associated environment variables typically include WT_SDK_DB_URI (e.g., s3://...), WT_SDK_ENV_CONFIG_DB_URI, and various AWS-related credentials (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY) if utilizing S3-backed storage [1]. By default, the SDK may fall back to local storage (e.g., SQLite) if cloud-specific variables are not configured or if the application's storage type is set accordingly [1]. For specific implementation details, such as the contents of config.py or the exact behavior in v0.4.0, it is recommended to refer to the official repository documentation at https://github.com/AI45Lab/wt-data-platform-sdk [1].
Citations:
🌐 Web query:
GitHub AI45Lab wt-data-platform-sdk v0.4.1 config.py WT_SDK_PROFILE production default💡 Result:
The wt-data-platform-sdk is associated with AI45Lab, specifically in the context of their SAfactory framework, which uses it to persist trajectory and environment data to an S3-backed LanceDB data platform [1][2]. In this SDK, the WT_SDK_PROFILE environment variable is used to manage configuration profiles, such as production or test [2]. Setting WT_SDK_PROFILE to production selects the production landing/serving tables, while other values (such as test) select their corresponding tables [2]. While exact file contents for version 0.4.1 are not indexed, typical configuration for this SDK involves setting several environment variables to establish the connection, such as: WT_SDK_PROFILE=production WT_SDK_DB_URI=s3://YOUR_DATA_DATABASE WT_SDK_ENV_CONFIG_DB_URI=s3://YOUR_ENV_CONFIG_DATABASE WT_SDK_S3_ENDPOINT=https://YOUR_S3_ENDPOINT WT_SDK_S3_ALLOW_HTTP=true AWS_ACCESS_KEY_ID=YOUR_ACCESS_KEY AWS_SECRET_ACCESS_KEY=YOUR_SECRET_KEY For further documentation, instructions on querying data, or specific details regarding version 0.4.1, you should refer to the official AI45Lab/wt-data-platform-sdk repository on GitHub [2].
Citations:
🏁 Script executed:
Repository: AI45Lab/SAfactory
Length of output: 12253
🏁 Script executed:
Repository: AI45Lab/SAfactory
Length of output: 345
Set the production SDK profile explicitly.
GatewayConfig()creates the table config withoutprofile, so cloud storage now uses the SDK test profile fromv0.4.1whenWT_SDK_PROFILEis unset. This selectslanding_testandserving_test, while production storage should usewind_tunnel_landingandwind_tunnel_serving. SetWT_SDK_PROFILE=productionor pass an explicit production table profile intoGatewayConfig. Add a regression check for the production landing and serving tables.🤖 Prompt for AI Agents
Source: MCP tools