You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 54be524
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: Cargo.toml
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
[package]
2
2
name = "mega2"
3
-
version = "0.41.79"
3
+
version = "0.41.80"
4
4
edition = "2024"
5
5
license = "MIT OR Apache-2.0"
6
6
description = "Monorepo engine and Git hosting server for AI agents: trunk-based storage, Git Smart HTTP, Git LFS, OCI registry, and Agent Session Capture"
Copy file name to clipboardExpand all lines: docs/architecture.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -131,7 +131,7 @@ The config pipeline lives in `src/config/` (**not** `src/common/config`). Key po
131
131
-**Load order**: `--config` → env `MEGA_CONFIG` → `./config/config.toml` → `$MEGA_BASE_DIR/etc/config.toml` → generated default. A profile (`--profile` / `MEGA_PROFILE`) is a sibling file `config.<profile>.toml` next to the main config, merged before env overrides.
132
132
-**Overrides and strictness**: env override pattern `MEGA_<SECTION>__<KEY>`; unknown fields are strictly rejected (leftover keys are errors, not silently ignored). The authoritative list of all config keys is the heavily commented sample [`../config/config.toml`](../config/config.toml); this document does not copy them.
133
133
-**Validation timing**: `Config::validate` runs on both the `AppContext::new` and `config validate` paths — service startup and CLI validation apply the same rules.
134
-
-**Hot reload**: the service command starts a 5s polling watcher (`CONFIG_RELOAD_POLL_INTERVAL`, `src/commands/service/mod.rs:22`); changes go through `ConfigHandle::reload`: whitelisted fields (`log`, `artifacts_gc`, `buck`, `notification`) apply live and notify subscribers, everything else is reported in `restart_required_fields` (`src/config/reload.rs:120`). Candidate configs pass `validate` before applying, and a failed apply can roll back.
134
+
-**Hot reload**: the service command starts a 5s polling watcher (`CONFIG_RELOAD_POLL_INTERVAL`, `src/commands/service/mod.rs:22`); changes go through `ConfigHandle::reload`: whitelisted fields (`log`, `artifacts_gc`, `buck`, `notification`, `views` except `views.enabled` and `views.allow_anonymous_register`, which require a restart) apply live and notify subscribers, everything else is reported in `restart_required_fields` (`src/config/reload.rs:120`). Candidate configs pass `validate` before applying, and a failed apply can roll back.
135
135
136
136
See the [Configuration Guide](./configuration.md) for load order, SecretRef, and hot-reload behavior.
Copy file name to clipboardExpand all lines: docs/configuration.md
+3-1Lines changed: 3 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -72,8 +72,9 @@ While a service runs, `ConfigReloadWatcher` polls the base config and profile fi
72
72
-`artifacts_gc.interval_secs` / `grace_secs` / `batch_limit`; `artifacts_gc.enable` applies live only **true → false** — enabling from false requires a restart
73
73
-`buck.cleanup_interval` / `completed_retention_days`; `buck.enable_session_cleanup` applies live only **true → false** — enabling from false requires a restart
74
74
-`notification.enabled` (the notification section snapshot is swapped live; an enabled flip counts as applied)
**All other fields** (`database.*`, `redis.url`, `base_dir`, `monorepo.*`, `git.*`, `pack.*`, `lfs.*`, `blame.*`, `object_storage.*`, `oauth.*`, `storage_events.*`, `github_sync.*`, buck upload limits, `vault.audit`, `cedar`, etc.) are only recorded in `restart_required_fields` — visible in the logs, snapshot unchanged — and take effect on process restart. Hot reload never writes new secret values back into the snapshot, and reports never contain secret values.
77
+
**All other fields** (`database.*`, `redis.url`, `base_dir`, `monorepo.*`, `git.*`, `pack.*`, `lfs.*`, `blame.*`, `object_storage.*`, `oauth.*`, `storage_events.*`, `github_sync.*`, `views.enabled`, `views.allow_anonymous_register`, buck upload limits, `vault.audit`, `cedar`, etc.) are only recorded in `restart_required_fields` — visible in the logs, snapshot unchanged — and take effect on process restart. Hot reload never writes new secret values back into the snapshot, and reports never contain secret values.
77
78
78
79
## 4. Section guide
79
80
@@ -93,6 +94,7 @@ One line of purpose and the key entries per section; full comments and defaults
93
94
-**`[redis]`**: `url`. Cache / distributed locks / snowflake worker leases, etc.; may be Vault-backed via SecretRef.
-**`[artifacts_gc]`**: GC of unreferenced artifact blobs (`enable` / `interval_secs` / `grace_secs` / `batch_limit`), default off; tuning hot-reloads, enabling from false requires a restart.
97
+
-**`[views]`**: experimental deterministic history projections, default off. `enabled = true` requires `monorepo.push_policy = "trunk"` and `monorepo.object_format = "sha1"`; see [`config/config.toml`](../config/config.toml) for fields and defaults.
96
98
-**`[notification]`**: `enabled` global kill switch (hot-reloadable); optional `[notification.webhook]` outbound channel (`url` is non-secret, `token_ref` is a SecretRef). The sample config documents every supported field.
0 commit comments