pwn 0.5.783 → 0.5.784
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/Gemfile +3 -3
- data/Rakefile +19 -1
- data/bin/pwn_setup +1 -1
- data/build_gem.sh +1 -1
- data/documentation/Backup-Retention.md +27 -0
- data/documentation/Cron.md +64 -35
- data/documentation/How-PWN-Works.md +1 -1
- data/documentation/Installation.md +247 -6
- data/documentation/Persistence.md +1 -1
- data/documentation/Reinforcement-Learning.md +5 -6
- data/documentation/diagrams/cron-scheduling.svg +130 -128
- data/documentation/diagrams/dot/cron-scheduling.dot +3 -3
- data/etc/default_cron/session_cleanup.rb +1217 -10
- data/lib/pwn/ai/agent/extrospection.rb +6 -7
- data/lib/pwn/ai/agent/learning.rb +48 -7
- data/lib/pwn/ai/agent/policy.rb +5 -0
- data/lib/pwn/ai/agent/swarm.rb +31 -16
- data/lib/pwn/ai/router.rb +45 -2
- data/lib/pwn/cron.rb +120 -49
- data/lib/pwn/migrate.rb +292 -15
- data/lib/pwn/plugins/binary_parser.rb +5 -4
- data/lib/pwn/plugins/ghidra.rb +4 -3
- data/lib/pwn/plugins/log.rb +18 -2
- data/lib/pwn/plugins/repl/ai.rb +12 -1
- data/lib/pwn/plugins/repl/ai_console.rb +6 -2
- data/lib/pwn/plugins/repl/ai_swarm.rb +4 -4
- data/lib/pwn/sessions.rb +58 -16
- data/lib/pwn/setup.rb +9 -17
- data/lib/pwn/version.rb +1 -1
- data/scripts/build_gate.rb +58 -0
- data/spec/integration/build_gate_spec.rb +73 -0
- data/spec/integration/persistence_roundtrip_spec.rb +1 -7
- data/spec/lib/pwn/ai/agent/policy_spec.rb +27 -0
- data/spec/lib/pwn/ai/router_spec.rb +30 -2
- data/spec/lib/pwn/cron_spec.rb +113 -6
- data/spec/lib/pwn/migrate_spec.rb +160 -5
- data/spec/lib/pwn/plugins/log_spec.rb +7 -0
- data/spec/lib/pwn/plugins/repl/ai_console_spec.rb +16 -4
- data/spec/lib/pwn/plugins/repl/ai_swarm_spec.rb +11 -0
- data/spec/lib/pwn/redaction_spec.rb +13 -10
- data/spec/lib/pwn/session_cleanup_concurrency_spec.rb +201 -0
- data/spec/lib/pwn/session_cleanup_default_spec.rb +165 -2
- data/spec/lib/pwn/session_cleanup_legacy_spec.rb +101 -0
- data/spec/lib/pwn/session_cleanup_payload_spec.rb +335 -2
- data/spec/lib/pwn/session_cleanup_recovery_spec.rb +389 -0
- data/spec/lib/pwn/sessions_spec.rb +112 -0
- data/spec/lib/pwn/setup_spec.rb +3 -1
- data/spec/support/gate_failure_formatter.rb +14 -0
- data/third_party/pwn_rdoc.jsonl +15 -1
- metadata +14 -7
data/third_party/pwn_rdoc.jsonl
CHANGED
|
@@ -1459,6 +1459,7 @@
|
|
|
1459
1459
|
{"messages":[{"role":"user","content":"PWN::AI::Router.active_session_endpoint Usage"},{"role":"assistant","content":"`PWN::AI::Router.active_session_endpoint`: "}]}
|
|
1460
1460
|
{"messages":[{"role":"user","content":"PWN::AI::Router.authors Usage"},{"role":"assistant","content":"`PWN::AI::Router.authors`: "}]}
|
|
1461
1461
|
{"messages":[{"role":"user","content":"PWN::AI::Router.config_entry Usage"},{"role":"assistant","content":"`PWN::AI::Router.config_entry`: "}]}
|
|
1462
|
+
{"messages":[{"role":"user","content":"PWN::AI::Router.content_text Usage"},{"role":"assistant","content":"`PWN::AI::Router.content_text`: "}]}
|
|
1462
1463
|
{"messages":[{"role":"user","content":"PWN::AI::Router.default_entry Usage"},{"role":"assistant","content":"`PWN::AI::Router.default_entry`: "}]}
|
|
1463
1464
|
{"messages":[{"role":"user","content":"PWN::AI::Router.env_dig Usage"},{"role":"assistant","content":"`PWN::AI::Router.env_dig`: "}]}
|
|
1464
1465
|
{"messages":[{"role":"user","content":"PWN::AI::Router.env_hash Usage"},{"role":"assistant","content":"`PWN::AI::Router.env_hash`: "}]}
|
|
@@ -1470,6 +1471,7 @@
|
|
|
1470
1471
|
{"messages":[{"role":"user","content":"PWN::AI::Router.required_bins Usage"},{"role":"assistant","content":"`PWN::AI::Router.required_bins`: "}]}
|
|
1471
1472
|
{"messages":[{"role":"user","content":"PWN::AI::Router.reset_usage Usage"},{"role":"assistant","content":"`PWN::AI::Router.reset_usage`: "}]}
|
|
1472
1473
|
{"messages":[{"role":"user","content":"PWN::AI::Router.resolve Usage"},{"role":"assistant","content":"`PWN::AI::Router.resolve`: "}]}
|
|
1474
|
+
{"messages":[{"role":"user","content":"PWN::AI::Router.response_text Usage"},{"role":"assistant","content":"`PWN::AI::Router.response_text`: "}]}
|
|
1473
1475
|
{"messages":[{"role":"user","content":"PWN::AI::Router.session_endpoint? Usage"},{"role":"assistant","content":"`PWN::AI::Router.session_endpoint?`: "}]}
|
|
1474
1476
|
{"messages":[{"role":"user","content":"PWN::AI::Router.session_value? Usage"},{"role":"assistant","content":"`PWN::AI::Router.session_value?`: "}]}
|
|
1475
1477
|
{"messages":[{"role":"user","content":"PWN::AI::Router.summarize Usage"},{"role":"assistant","content":"`PWN::AI::Router.summarize`: "}]}
|
|
@@ -2067,6 +2069,7 @@
|
|
|
2067
2069
|
{"messages":[{"role":"user","content":"PWN::Cron.enable_linger Usage"},{"role":"assistant","content":"`PWN::Cron.enable_linger`: "}]}
|
|
2068
2070
|
{"messages":[{"role":"user","content":"PWN::Cron.ensure_worker Usage"},{"role":"assistant","content":"`PWN::Cron.ensure_worker`: "}]}
|
|
2069
2071
|
{"messages":[{"role":"user","content":"PWN::Cron.help Usage"},{"role":"assistant","content":"`PWN::Cron.help`: "}]}
|
|
2072
|
+
{"messages":[{"role":"user","content":"PWN::Cron.housekeeping_job? Usage"},{"role":"assistant","content":"`PWN::Cron.housekeeping_job?`: "}]}
|
|
2070
2073
|
{"messages":[{"role":"user","content":"PWN::Cron.install_crontab_entry Usage"},{"role":"assistant","content":"`PWN::Cron.install_crontab_entry`: "}]}
|
|
2071
2074
|
{"messages":[{"role":"user","content":"PWN::Cron.install_crontab_job Usage"},{"role":"assistant","content":"`PWN::Cron.install_crontab_job`: "}]}
|
|
2072
2075
|
{"messages":[{"role":"user","content":"PWN::Cron.install_crontab_worker Usage"},{"role":"assistant","content":"`PWN::Cron.install_crontab_worker`: "}]}
|
|
@@ -2089,6 +2092,7 @@
|
|
|
2089
2092
|
{"messages":[{"role":"user","content":"PWN::Cron.launchd_plist Usage"},{"role":"assistant","content":"`PWN::Cron.launchd_plist`: "}]}
|
|
2090
2093
|
{"messages":[{"role":"user","content":"PWN::Cron.list Usage"},{"role":"assistant","content":"`PWN::Cron.list`: Supported Method Parameters\n\njobs = PWN::Cron.list\n"}]}
|
|
2091
2094
|
{"messages":[{"role":"user","content":"PWN::Cron.load_jobs Usage"},{"role":"assistant","content":"`PWN::Cron.load_jobs`: "}]}
|
|
2095
|
+
{"messages":[{"role":"user","content":"PWN::Cron.native_execution? Usage"},{"role":"assistant","content":"`PWN::Cron.native_execution?`: "}]}
|
|
2092
2096
|
{"messages":[{"role":"user","content":"PWN::Cron.native_unit_dir Usage"},{"role":"assistant","content":"`PWN::Cron.native_unit_dir`: "}]}
|
|
2093
2097
|
{"messages":[{"role":"user","content":"PWN::Cron.os_type Usage"},{"role":"assistant","content":"`PWN::Cron.os_type`: "}]}
|
|
2094
2098
|
{"messages":[{"role":"user","content":"PWN::Cron.parse_time Usage"},{"role":"assistant","content":"`PWN::Cron.parse_time`: "}]}
|
|
@@ -2096,8 +2100,9 @@
|
|
|
2096
2100
|
{"messages":[{"role":"user","content":"PWN::Cron.pid_file Usage"},{"role":"assistant","content":"`PWN::Cron.pid_file`: "}]}
|
|
2097
2101
|
{"messages":[{"role":"user","content":"PWN::Cron.process_alive? Usage"},{"role":"assistant","content":"`PWN::Cron.process_alive?`: "}]}
|
|
2098
2102
|
{"messages":[{"role":"user","content":"PWN::Cron.read_pid Usage"},{"role":"assistant","content":"`PWN::Cron.read_pid`: "}]}
|
|
2103
|
+
{"messages":[{"role":"user","content":"PWN::Cron.registry_owned? Usage"},{"role":"assistant","content":"`PWN::Cron.registry_owned?`: "}]}
|
|
2099
2104
|
{"messages":[{"role":"user","content":"PWN::Cron.relative_seconds Usage"},{"role":"assistant","content":"`PWN::Cron.relative_seconds`: "}]}
|
|
2100
|
-
{"messages":[{"role":"user","content":"PWN::Cron.remove Usage"},{"role":"assistant","content":"`PWN::Cron.remove`: Supported Method Parameters\n\nPWN::Cron.remove(id:)\n"}]}
|
|
2105
|
+
{"messages":[{"role":"user","content":"PWN::Cron.remove Usage"},{"role":"assistant","content":"`PWN::Cron.remove`: Supported Method Parameters\n\nPWN::Cron.remove(id:, sync_native: false)\n"}]}
|
|
2101
2106
|
{"messages":[{"role":"user","content":"PWN::Cron.remove_native_job Usage"},{"role":"assistant","content":"`PWN::Cron.remove_native_job`: "}]}
|
|
2102
2107
|
{"messages":[{"role":"user","content":"PWN::Cron.rm_unit_file Usage"},{"role":"assistant","content":"`PWN::Cron.rm_unit_file`: "}]}
|
|
2103
2108
|
{"messages":[{"role":"user","content":"PWN::Cron.ruby_eval_argv Usage"},{"role":"assistant","content":"`PWN::Cron.ruby_eval_argv`: "}]}
|
|
@@ -2141,6 +2146,7 @@
|
|
|
2141
2146
|
{"messages":[{"role":"user","content":"PWN::Cron.which_bin Usage"},{"role":"assistant","content":"`PWN::Cron.which_bin`: "}]}
|
|
2142
2147
|
{"messages":[{"role":"user","content":"PWN::Cron.windows? Usage"},{"role":"assistant","content":"`PWN::Cron.windows?`: "}]}
|
|
2143
2148
|
{"messages":[{"role":"user","content":"PWN::Cron.windows_taskkill Usage"},{"role":"assistant","content":"`PWN::Cron.windows_taskkill`: "}]}
|
|
2149
|
+
{"messages":[{"role":"user","content":"PWN::Cron.with_registry_lock Usage"},{"role":"assistant","content":"`PWN::Cron.with_registry_lock`: "}]}
|
|
2144
2150
|
{"messages":[{"role":"user","content":"PWN::Cron.worker_log Usage"},{"role":"assistant","content":"`PWN::Cron.worker_log`: "}]}
|
|
2145
2151
|
{"messages":[{"role":"user","content":"PWN::Cron.worker_loop Usage"},{"role":"assistant","content":"`PWN::Cron.worker_loop`: "}]}
|
|
2146
2152
|
{"messages":[{"role":"user","content":"PWN::Cron.worker_ruby_cmd Usage"},{"role":"assistant","content":"`PWN::Cron.worker_ruby_cmd`: "}]}
|
|
@@ -2315,16 +2321,23 @@
|
|
|
2315
2321
|
{"messages":[{"role":"user","content":"PWN::Migrate.authors Usage"},{"role":"assistant","content":"`PWN::Migrate.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
|
|
2316
2322
|
{"messages":[{"role":"user","content":"PWN::Migrate.backfill_vault Usage"},{"role":"assistant","content":"`PWN::Migrate.backfill_vault`: Supported Method Parameters\n\nr = PWN::Migrate.backfill_vault(\n\nkey: 'optional', iv: 'optional', dry_run: false, io: $stdout\n\n)\n\nDecrypt → deep-merge template UNDER user (never overwrites) →re-encrypt with the SAME key/iv. This is the fix for the #1 upgrade break: ‘NoMethodError: undefined method ’[]‘ for nil` when a release added `env[:new_engine]` and the user’s vault predates it.\n"}]}
|
|
2317
2323
|
{"messages":[{"role":"user","content":"PWN::Migrate.backup! Usage"},{"role":"assistant","content":"`PWN::Migrate.backup!`: "}]}
|
|
2324
|
+
{"messages":[{"role":"user","content":"PWN::Migrate.backup_input_names Usage"},{"role":"assistant","content":"`PWN::Migrate.backup_input_names`: "}]}
|
|
2325
|
+
{"messages":[{"role":"user","content":"PWN::Migrate.backup_inventory Usage"},{"role":"assistant","content":"`PWN::Migrate.backup_inventory`: "}]}
|
|
2326
|
+
{"messages":[{"role":"user","content":"PWN::Migrate.backup_reference_pins Usage"},{"role":"assistant","content":"`PWN::Migrate.backup_reference_pins`: "}]}
|
|
2327
|
+
{"messages":[{"role":"user","content":"PWN::Migrate.backup_retention_policy Usage"},{"role":"assistant","content":"`PWN::Migrate.backup_retention_policy`: "}]}
|
|
2318
2328
|
{"messages":[{"role":"user","content":"PWN::Migrate.check Usage"},{"role":"assistant","content":"`PWN::Migrate.check`: Supported Method Parameters\n\nPWN::Migrate.check(\n\nio: 'optional - IO to write the report to (default $stdout)'\n\n)\n\nHuman-readable ~/.pwn state doctor. Read-only. Called from PWN::Setup.check so ‘pwn setup` shows this alongside the native-gem / toolchain report.\n"}]}
|
|
2319
2329
|
{"messages":[{"role":"user","content":"PWN::Migrate.decryptor Usage"},{"role":"assistant","content":"`PWN::Migrate.decryptor`: "}]}
|
|
2320
2330
|
{"messages":[{"role":"user","content":"PWN::Migrate.deep_defaults Usage"},{"role":"assistant","content":"`PWN::Migrate.deep_defaults`: "}]}
|
|
2321
2331
|
{"messages":[{"role":"user","content":"PWN::Migrate.env_template Usage"},{"role":"assistant","content":"`PWN::Migrate.env_template`: Supported Method Parameters\n\ntmpl = PWN::Migrate.env_template\n\nThe canonical current-release pwn.yaml shape, WITHOUT the I/O side-effects of PWN::Config.default_env. Prefers PWN::Config.env_template when that refactor is present.\n"}]}
|
|
2332
|
+
{"messages":[{"role":"user","content":"PWN::Migrate.expire_backup_generations Usage"},{"role":"assistant","content":"`PWN::Migrate.expire_backup_generations`: "}]}
|
|
2322
2333
|
{"messages":[{"role":"user","content":"PWN::Migrate.help Usage"},{"role":"assistant","content":"`PWN::Migrate.help`: "}]}
|
|
2323
2334
|
{"messages":[{"role":"user","content":"PWN::Migrate.human_size Usage"},{"role":"assistant","content":"`PWN::Migrate.human_size`: "}]}
|
|
2324
2335
|
{"messages":[{"role":"user","content":"PWN::Migrate.installed_schema Usage"},{"role":"assistant","content":"`PWN::Migrate.installed_schema`: Supported Method Parameters\n\nschema = PWN::Migrate.installed_schema\n\n→ Integer schema number stamped in ~/.pwn/.schema (0 when absent).\n"}]}
|
|
2325
2336
|
{"messages":[{"role":"user","content":"PWN::Migrate.jsonl_verify Usage"},{"role":"assistant","content":"`PWN::Migrate.jsonl_verify`: "}]}
|
|
2326
2337
|
{"messages":[{"role":"user","content":"PWN::Migrate.missing_paths Usage"},{"role":"assistant","content":"`PWN::Migrate.missing_paths`: "}]}
|
|
2327
2338
|
{"messages":[{"role":"user","content":"PWN::Migrate.needed? Usage"},{"role":"assistant","content":"`PWN::Migrate.needed?`: Supported Method Parameters\n\nbool = PWN::Migrate.needed?\n\nCheap predicate for PWN::Config.refresh_env — schema stamp only, no per-file probes, so it adds ~0 to launch time.\n"}]}
|
|
2339
|
+
{"messages":[{"role":"user","content":"PWN::Migrate.prune_backups Usage"},{"role":"assistant","content":"`PWN::Migrate.prune_backups`: Supported Method Parameters\n\nPWN::Migrate.prune_backups(dry_run: true, keep: 3, limit: 10, admission: nil) Default duplicate-only pruning is nondestructive to unique history. Explicit expire_history policy bounds recovery generations instead.\n"}]}
|
|
2340
|
+
{"messages":[{"role":"user","content":"PWN::Migrate.publish_backup_retention Usage"},{"role":"assistant","content":"`PWN::Migrate.publish_backup_retention`: "}]}
|
|
2328
2341
|
{"messages":[{"role":"user","content":"PWN::Migrate.quarantine! Usage"},{"role":"assistant","content":"`PWN::Migrate.quarantine!`: "}]}
|
|
2329
2342
|
{"messages":[{"role":"user","content":"PWN::Migrate.run Usage"},{"role":"assistant","content":"`PWN::Migrate.run`: Supported Method Parameters\n\nreport = PWN::Migrate.run(\n\nfix: 'optional - also autofix incompatible files (default: schema-migrations only)',\nbackup: 'optional - take timestamped backup of ~/.pwn first (default true)',\ndry_run: 'optional - report what WOULD happen, write nothing (default false)',\nkey: 'optional - vault key (default: read ~/.pwn/pwn.yaml.decryptor)',\niv: 'optional - vault iv (default: read ~/.pwn/pwn.yaml.decryptor)',\nio: 'optional - IO to write to (default $stdout)'\n\n)\n\nbackup 2. schema migrations installed→current 3. per-file\n\n\nautofix (when fix:true) 4. pwn.yaml key backfill (when fix:true and decryptor available) 5. stamp .schema.\n"}]}
|
|
2330
2343
|
{"messages":[{"role":"user","content":"PWN::Migrate.safe_read Usage"},{"role":"assistant","content":"`PWN::Migrate.safe_read`: "}]}
|
|
@@ -3560,6 +3573,7 @@
|
|
|
3560
3573
|
{"messages":[{"role":"user","content":"PWN::Plugins::REPL::AIConsole::Control.checkpoint Usage"},{"role":"assistant","content":"`PWN::Plugins::REPL::AIConsole::Control.checkpoint`: "}]}
|
|
3561
3574
|
{"messages":[{"role":"user","content":"PWN::Plugins::REPL::AIConsole::Control.phase Usage"},{"role":"assistant","content":"`PWN::Plugins::REPL::AIConsole::Control.phase`: "}]}
|
|
3562
3575
|
{"messages":[{"role":"user","content":"PWN::Plugins::REPL::AIConsole::Control.stop Usage"},{"role":"assistant","content":"`PWN::Plugins::REPL::AIConsole::Control.stop`: "}]}
|
|
3576
|
+
{"messages":[{"role":"user","content":"PWN::Plugins::REPL::AIConsole::Control.stopping? Usage"},{"role":"assistant","content":"`PWN::Plugins::REPL::AIConsole::Control.stopping?`: "}]}
|
|
3563
3577
|
{"messages":[{"role":"user","content":"PWN::Plugins::REPL::AIConsole::Editor.new Usage"},{"role":"assistant","content":"`PWN::Plugins::REPL::AIConsole::Editor.new`: "}]}
|
|
3564
3578
|
{"messages":[{"role":"user","content":"PWN::Plugins::REPL::AIConsole::Editor.edit Usage"},{"role":"assistant","content":"`PWN::Plugins::REPL::AIConsole::Editor.edit`: "}]}
|
|
3565
3579
|
{"messages":[{"role":"user","content":"PWN::Plugins::REPL::AIConsole::Editor.finish_search Usage"},{"role":"assistant","content":"`PWN::Plugins::REPL::AIConsole::Editor.finish_search`: "}]}
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: pwn
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.5.
|
|
4
|
+
version: 0.5.784
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- 0day Inc.
|
|
@@ -169,14 +169,14 @@ dependencies:
|
|
|
169
169
|
requirements:
|
|
170
170
|
- - '='
|
|
171
171
|
- !ruby/object:Gem::Version
|
|
172
|
-
version: 3.
|
|
172
|
+
version: 3.5.0
|
|
173
173
|
type: :runtime
|
|
174
174
|
prerelease: false
|
|
175
175
|
version_requirements: !ruby/object:Gem::Requirement
|
|
176
176
|
requirements:
|
|
177
177
|
- - '='
|
|
178
178
|
- !ruby/object:Gem::Version
|
|
179
|
-
version: 3.
|
|
179
|
+
version: 3.5.0
|
|
180
180
|
- !ruby/object:Gem::Dependency
|
|
181
181
|
name: colorize
|
|
182
182
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -505,14 +505,14 @@ dependencies:
|
|
|
505
505
|
requirements:
|
|
506
506
|
- - '='
|
|
507
507
|
- !ruby/object:Gem::Version
|
|
508
|
-
version: 1.8.
|
|
508
|
+
version: 1.8.2
|
|
509
509
|
type: :runtime
|
|
510
510
|
prerelease: false
|
|
511
511
|
version_requirements: !ruby/object:Gem::Requirement
|
|
512
512
|
requirements:
|
|
513
513
|
- - '='
|
|
514
514
|
- !ruby/object:Gem::Version
|
|
515
|
-
version: 1.8.
|
|
515
|
+
version: 1.8.2
|
|
516
516
|
- !ruby/object:Gem::Dependency
|
|
517
517
|
name: meshtastic
|
|
518
518
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -1121,14 +1121,14 @@ dependencies:
|
|
|
1121
1121
|
requirements:
|
|
1122
1122
|
- - '='
|
|
1123
1123
|
- !ruby/object:Gem::Version
|
|
1124
|
-
version: 2.10.
|
|
1124
|
+
version: 2.10.2
|
|
1125
1125
|
type: :development
|
|
1126
1126
|
prerelease: false
|
|
1127
1127
|
version_requirements: !ruby/object:Gem::Requirement
|
|
1128
1128
|
requirements:
|
|
1129
1129
|
- - '='
|
|
1130
1130
|
- !ruby/object:Gem::Version
|
|
1131
|
-
version: 2.10.
|
|
1131
|
+
version: 2.10.2
|
|
1132
1132
|
- !ruby/object:Gem::Dependency
|
|
1133
1133
|
name: thin
|
|
1134
1134
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -1423,6 +1423,7 @@ files:
|
|
|
1423
1423
|
- documentation/AI-Integration.md
|
|
1424
1424
|
- documentation/AWS.md
|
|
1425
1425
|
- documentation/Agent-Tool-Registry.md
|
|
1426
|
+
- documentation/Backup-Retention.md
|
|
1426
1427
|
- documentation/Banner.md
|
|
1427
1428
|
- documentation/Blockchain.md
|
|
1428
1429
|
- documentation/Bounty.md
|
|
@@ -6575,6 +6576,7 @@ files:
|
|
|
6575
6576
|
- pwn.gemspec
|
|
6576
6577
|
- reinstall_gemset.sh
|
|
6577
6578
|
- scripts/benchmark_policy.rb
|
|
6579
|
+
- scripts/build_gate.rb
|
|
6578
6580
|
- spec/conventions_spec.rb
|
|
6579
6581
|
- spec/documentation/installation_md_spec.rb
|
|
6580
6582
|
- spec/documentation/prompt_version_placeholder_spec.rb
|
|
@@ -6651,6 +6653,7 @@ files:
|
|
|
6651
6653
|
- spec/fixtures/sdr/rtl433/wh31.cu8
|
|
6652
6654
|
- spec/fixtures/sdr/rtl433/wh31.json
|
|
6653
6655
|
- spec/integration/bin_drivers_spec.rb
|
|
6656
|
+
- spec/integration/build_gate_spec.rb
|
|
6654
6657
|
- spec/integration/config_spec.rb
|
|
6655
6658
|
- spec/integration/dispatch_spec.rb
|
|
6656
6659
|
- spec/integration/documentation_sync_spec.rb
|
|
@@ -7184,8 +7187,11 @@ files:
|
|
|
7184
7187
|
- spec/lib/pwn/sdr/rfidler_spec.rb
|
|
7185
7188
|
- spec/lib/pwn/sdr/son_micro_rfid_spec.rb
|
|
7186
7189
|
- spec/lib/pwn/sdr_spec.rb
|
|
7190
|
+
- spec/lib/pwn/session_cleanup_concurrency_spec.rb
|
|
7187
7191
|
- spec/lib/pwn/session_cleanup_default_spec.rb
|
|
7192
|
+
- spec/lib/pwn/session_cleanup_legacy_spec.rb
|
|
7188
7193
|
- spec/lib/pwn/session_cleanup_payload_spec.rb
|
|
7194
|
+
- spec/lib/pwn/session_cleanup_recovery_spec.rb
|
|
7189
7195
|
- spec/lib/pwn/session_trace_spec.rb
|
|
7190
7196
|
- spec/lib/pwn/sessions_spec.rb
|
|
7191
7197
|
- spec/lib/pwn/setup_spec.rb
|
|
@@ -7216,6 +7222,7 @@ files:
|
|
|
7216
7222
|
- spec/lib/pwn_spec.rb
|
|
7217
7223
|
- spec/smoke/lifecycle_authz_replay_smoke_test.rb
|
|
7218
7224
|
- spec/spec_helper.rb
|
|
7225
|
+
- spec/support/gate_failure_formatter.rb
|
|
7219
7226
|
- spec/support/harness/cli_faults.rb
|
|
7220
7227
|
- spec/support/harness/evaluate.rb
|
|
7221
7228
|
- spec/support/harness/experiment_preload.rb
|