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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a08513df922f41ef1dc16b37bb31b226e71aadaa38f324bdc223a90c4371b1a6
4
- data.tar.gz: ae7f4292d6dba19047434eb39047f004269a50a59e39926ea02363a51b0a99f5
3
+ metadata.gz: 4a4a3747c89f6d3eff1e1708f103c4b131784bb39826be73df5756bf2c52582a
4
+ data.tar.gz: 2346cd0fb9d75dc3bcbd382ffa312bfa1b67ae2fb6cb57321bf964f40aebc089
5
5
  SHA512:
6
- metadata.gz: bf23519f237e32d9c56453dcb4614a9540ce51094bb7e873c1787abf6ecf672fd0f78e9228fbc477d7f4732cff6d026f437ff4c91d08a47ebca6773b96d004ab
7
- data.tar.gz: cd804bde09b2f3795a6bc42f2d73483153ec8a85b7e833bdd973080edd8b02d31ba5977d1fc954441e41ac7e860b28925ae24a5a40c509c355bcd999be56b71e
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.
@@ -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
- enabled = options.enable_quonfig_user_context == true ||
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)
@@ -194,7 +194,9 @@ module Quonfig
194
194
  global_context: {},
195
195
  logger_key: nil,
196
196
  logger: nil,
197
- enable_quonfig_user_context: false,
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
  )
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Quonfig
4
- VERSION = '0.0.20'
4
+ VERSION = '1.0.0'
5
5
  end
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.20
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-05-29 00:00:00.000000000 Z
11
+ date: 2026-06-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport