quonfig 0.0.20 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +10 -0
- data/lib/quonfig/client.rb +16 -3
- data/lib/quonfig/options.rb +3 -1
- data/lib/quonfig/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4a4a3747c89f6d3eff1e1708f103c4b131784bb39826be73df5756bf2c52582a
|
|
4
|
+
data.tar.gz: 2346cd0fb9d75dc3bcbd382ffa312bfa1b67ae2fb6cb57321bf964f40aebc089
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 662491807b3ba2c9267c96b5cfbc9f9243e7fe0f096707710a354d27df339a5e058889d41dca1d5d4268b3bdac5d62db7b3f3577478343e70366091c198e61ad
|
|
7
|
+
data.tar.gz: f5d9141986179a7b184ef638e541d62fd575683f2c42b42387c87c9facacaaab0ec25fd7c50260310d74872f11edee11ef136597503b701dc1bea3c705a444d6
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.0.0 - 2026-06-06
|
|
4
|
+
|
|
5
|
+
- **Stable 1.0.0 release.** The Quonfig Ruby SDK is now declared stable. No API or
|
|
6
|
+
behavior changes from 0.0.21 — this is a coordinated 1.0.0 version stamp across
|
|
7
|
+
the entire Quonfig SDK family.
|
|
8
|
+
|
|
9
|
+
## 0.0.21 - 2026-06-02
|
|
10
|
+
|
|
11
|
+
- **Dev-context injection is now default-on (qfg-bw7g.5).** `enable_quonfig_user_context` now defaults to `nil` (unset). When left unset it defaults to **on**, gated solely by the presence of `~/.quonfig/tokens.json`; the loader no-ops without that file, so this stays inert in production. New `dev_context_enabled?` precedence: explicit `enable_quonfig_user_context` option ?? `QUONFIG_DEV_CONTEXT` env (`true`/`false`) ?? `true`. Pass `enable_quonfig_user_context: false` or set `QUONFIG_DEV_CONTEXT=false` to opt out.
|
|
12
|
+
|
|
3
13
|
## 0.0.20 - 2026-05-29
|
|
4
14
|
|
|
5
15
|
- **Fix (delivery): derive evaluator env from `meta.environment` in HTTP+SSE delivery mode (qfg-xpln.2).** Per-environment overrides were not being applied when the SDK ran in delivery mode (HTTP fetch + SSE stream). The evaluator now derives its `env_id` from the authoritative `meta.environment` carried on every delivery envelope, so environment-scoped rules and overrides resolve correctly against the environment api-delivery actually served — matching datadir-mode behavior.
|
data/lib/quonfig/client.rb
CHANGED
|
@@ -953,9 +953,7 @@ module Quonfig
|
|
|
953
953
|
# customer's so any explicit `quonfig-user` keys win on collision.
|
|
954
954
|
def build_initial_global_context(options)
|
|
955
955
|
customer = normalize_context(options.global_context)
|
|
956
|
-
|
|
957
|
-
ENV['QUONFIG_DEV_CONTEXT'] == 'true'
|
|
958
|
-
return customer unless enabled
|
|
956
|
+
return customer unless dev_context_enabled?(options)
|
|
959
957
|
|
|
960
958
|
dev = Quonfig::DevContext.load_quonfig_user_context
|
|
961
959
|
return customer if dev.nil?
|
|
@@ -963,6 +961,21 @@ module Quonfig
|
|
|
963
961
|
merge_contexts(dev, customer)
|
|
964
962
|
end
|
|
965
963
|
|
|
964
|
+
# Tri-state resolution for dev-context injection. Default ON, gated only
|
|
965
|
+
# by the presence of the tokens file (the loader no-ops without it ->
|
|
966
|
+
# dead in prod). Precedence: an explicit option (non-nil) wins, else
|
|
967
|
+
# QUONFIG_DEV_CONTEXT ('true'/'false'), else true.
|
|
968
|
+
def dev_context_enabled?(options)
|
|
969
|
+
opt = options.enable_quonfig_user_context
|
|
970
|
+
return opt == true unless opt.nil?
|
|
971
|
+
|
|
972
|
+
case ENV.fetch('QUONFIG_DEV_CONTEXT', nil)
|
|
973
|
+
when 'true' then true
|
|
974
|
+
when 'false' then false
|
|
975
|
+
else true
|
|
976
|
+
end
|
|
977
|
+
end
|
|
978
|
+
|
|
966
979
|
def normalize_context(ctx)
|
|
967
980
|
return {} if ctx.nil?
|
|
968
981
|
return ctx if ctx.is_a?(Hash)
|
data/lib/quonfig/options.rb
CHANGED
|
@@ -194,7 +194,9 @@ module Quonfig
|
|
|
194
194
|
global_context: {},
|
|
195
195
|
logger_key: nil,
|
|
196
196
|
logger: nil,
|
|
197
|
-
|
|
197
|
+
# Tri-state (nil = unset). Default ON, gated only by the presence of
|
|
198
|
+
# ~/.quonfig/tokens.json; see Client#build_initial_global_context.
|
|
199
|
+
enable_quonfig_user_context: nil,
|
|
198
200
|
data_dir_auto_reload: false,
|
|
199
201
|
data_dir_auto_reload_debounce_ms: 200
|
|
200
202
|
)
|
data/lib/quonfig/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: quonfig
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0
|
|
4
|
+
version: 1.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jeff Dwyer
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-
|
|
11
|
+
date: 2026-06-06 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activesupport
|