- {feature_flags.session_sandboxes && (
+ {features.session_sandboxes && (
ServerConfig {
strategy: WebhookStrategy::TailscaleFunnel,
}),
},
- feature_flags: FeatureFlags {
+ features: Features {
session_sandboxes: true,
},
log: LogConfig {
diff --git a/lib/crates/fabro-config/src/server.rs b/lib/crates/fabro-config/src/server.rs
index 1f03e0d81..0a226761b 100644
--- a/lib/crates/fabro-config/src/server.rs
+++ b/lib/crates/fabro-config/src/server.rs
@@ -115,7 +115,7 @@ impl Default for WebConfig {
}
#[derive(Debug, Clone, Default, Deserialize, PartialEq, Serialize)]
-pub struct FeatureFlags {
+pub struct Features {
#[serde(default)]
pub session_sandboxes: bool,
}
@@ -136,7 +136,7 @@ pub struct ServerConfig {
#[serde(default)]
pub git: GitConfig,
#[serde(default)]
- pub feature_flags: FeatureFlags,
+ pub features: Features,
#[serde(default)]
pub log: LogConfig,
#[serde(flatten)]
@@ -479,17 +479,17 @@ matcher = "agent_loop"
}
#[test]
- fn parse_feature_flags() {
- let toml = "[feature_flags]\nsession_sandboxes = true";
+ fn parse_features() {
+ let toml = "[features]\nsession_sandboxes = true";
let config: ServerConfig = toml::from_str(toml).unwrap();
- assert!(config.feature_flags.session_sandboxes);
+ assert!(config.features.session_sandboxes);
}
#[test]
- fn parse_feature_flags_defaults() {
+ fn parse_features_defaults() {
let toml = "";
let config: ServerConfig = toml::from_str(toml).unwrap();
- assert!(!config.feature_flags.session_sandboxes);
+ assert!(!config.features.session_sandboxes);
}
#[test]
diff --git a/lib/packages/fabro-api-client/src/.openapi-generator/FILES b/lib/packages/fabro-api-client/src/.openapi-generator/FILES
index 0c2a3bc63..0e119bf95 100644
--- a/lib/packages/fabro-api-client/src/.openapi-generator/FILES
+++ b/lib/packages/fabro-api-client/src/.openapi-generator/FILES
@@ -58,13 +58,14 @@ models/exe-configuration.ts
models/execute-query-request.ts
models/execute-query-response-rows-inner-inner.ts
models/execute-query-response.ts
-models/feature-flags.ts
+models/features.ts
models/file-checkpoint.ts
models/file-diff.ts
models/friction-kind.ts
models/friction-point.ts
models/git-author-configuration.ts
models/git-configuration.ts
+models/git-hub-configuration.ts
models/health-response.ts
models/history-entry.ts
models/hook-definition.ts
diff --git a/lib/packages/fabro-api-client/src/models/feature-flags.ts b/lib/packages/fabro-api-client/src/models/features.ts
similarity index 93%
rename from lib/packages/fabro-api-client/src/models/feature-flags.ts
rename to lib/packages/fabro-api-client/src/models/features.ts
index fe63b674b..75e01c2cf 100644
--- a/lib/packages/fabro-api-client/src/models/feature-flags.ts
+++ b/lib/packages/fabro-api-client/src/models/features.ts
@@ -17,7 +17,7 @@
/**
* Feature flags.
*/
-export interface FeatureFlags {
+export interface Features {
/**
* Enable session sandboxes.
*/
diff --git a/lib/packages/fabro-api-client/src/models/git-hub-configuration.ts b/lib/packages/fabro-api-client/src/models/git-hub-configuration.ts
new file mode 100644
index 000000000..2b73d3c68
--- /dev/null
+++ b/lib/packages/fabro-api-client/src/models/git-hub-configuration.ts
@@ -0,0 +1,26 @@
+/* tslint:disable */
+/* eslint-disable */
+/**
+ * Fabro Run API
+ * HTTP API for managing Fabro workflow run executions.
+ *
+ * The version of the OpenAPI document: 0.1.0
+ *
+ *
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+ * https://openapi-generator.tech
+ * Do not edit the class manually.
+ */
+
+
+
+/**
+ * GitHub App token injection configuration.
+ */
+export interface GitHubConfiguration {
+ /**
+ * GitHub API permissions to request (e.g. contents = write).
+ */
+ 'permissions'?: { [key: string]: string; };
+}
+
diff --git a/lib/packages/fabro-api-client/src/models/index.ts b/lib/packages/fabro-api-client/src/models/index.ts
index 6e52f6d77..3bf6eacf0 100644
--- a/lib/packages/fabro-api-client/src/models/index.ts
+++ b/lib/packages/fabro-api-client/src/models/index.ts
@@ -39,13 +39,14 @@ export * from './exe-configuration';
export * from './execute-query-request';
export * from './execute-query-response';
export * from './execute-query-response-rows-inner-inner';
-export * from './feature-flags';
+export * from './features';
export * from './file-checkpoint';
export * from './file-diff';
export * from './friction-kind';
export * from './friction-point';
export * from './git-author-configuration';
export * from './git-configuration';
+export * from './git-hub-configuration';
export * from './health-response';
export * from './history-entry';
export * from './hook-definition';
diff --git a/lib/packages/fabro-api-client/src/models/server-configuration.ts b/lib/packages/fabro-api-client/src/models/server-configuration.ts
index d41fc0968..1728da819 100644
--- a/lib/packages/fabro-api-client/src/models/server-configuration.ts
+++ b/lib/packages/fabro-api-client/src/models/server-configuration.ts
@@ -24,12 +24,15 @@ import type { AssetsConfiguration } from './assets-configuration';
import type { CheckpointConfiguration } from './checkpoint-configuration';
// May contain unused imports in some cases
// @ts-ignore
-import type { FeatureFlags } from './feature-flags';
+import type { Features } from './features';
// May contain unused imports in some cases
// @ts-ignore
import type { GitConfiguration } from './git-configuration';
// May contain unused imports in some cases
// @ts-ignore
+import type { GitHubConfiguration } from './git-hub-configuration';
+// May contain unused imports in some cases
+// @ts-ignore
import type { HookDefinition } from './hook-definition';
// May contain unused imports in some cases
// @ts-ignore
@@ -68,7 +71,7 @@ export interface ServerConfiguration {
'web'?: WebConfiguration;
'api'?: ApiConfiguration;
'git'?: GitConfiguration;
- 'feature_flags'?: FeatureFlags;
+ 'features'?: Features;
'log'?: LogConfiguration;
/**
* Default working directory.
@@ -89,5 +92,6 @@ export interface ServerConfiguration {
* Default MCP server configurations.
*/
'mcp_servers'?: { [key: string]: McpServerEntry; };
+ 'github'?: GitHubConfiguration;
}