harnex 0.3.1 → 0.3.3

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: acc43f4432f442abd435e2ef3278ca5e2ba94802285c67a50736aae9ea40188e
4
- data.tar.gz: 0437ac12e301491856ceddb176c18ab9ac334c4dab31295d55dc4203c4a0f509
3
+ metadata.gz: 3c56e3cb64f20e24e32b7f46c4be98b23715407f5f990f79ba1b702720a5130b
4
+ data.tar.gz: 1c88ad05842287252453878522baba77db4b8388fa6166d3ef7eaf8127b0eaa1
5
5
  SHA512:
6
- metadata.gz: 5f8d1d3db623e3df0a0bbeb2f5f1f9e88c18ef2b6113355ad871e9c3fc3987c1e1b7dfb32bac5b79bd32697cd3c9f80bc6163398bfd8255eb57a984a47a548bc
7
- data.tar.gz: 48e51e3630cbe866ac806e30eff42aa43ed551c8e90efd16dd03675c62d91f1e62dbddcea4a13220a7a7ec4473f4d513ec3cf25be2b6080cef32ca1552abd3cc
6
+ metadata.gz: 281b2f232bddcaf24d391a68fc331c73f7d43809d2f40d18848e417da9e50b999c330105a474f99ffa080528ccbeb6139da31c785604cffaab6ce76f4fe16584
7
+ data.tar.gz: 4e36010a2d17c5541e95c75179941b9fa282d2093237aabd0d1748d5b5c5c374eb4e67852d1d06b674ab039cdc7106c8f71de9bf64b9a99a737ec6e861b58fc6
data/bin/gem-push ADDED
@@ -0,0 +1,20 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ GEM_FILE="${1:?Usage: bin/gem-push <gemfile>}"
5
+ ENV_FILE="$(dirname "$0")/../.env"
6
+
7
+ if [[ ! -f "$ENV_FILE" ]]; then
8
+ echo "Error: .env not found" >&2
9
+ exit 1
10
+ fi
11
+
12
+ KEY=$(grep '^RUBYGEMS_TOTP_KEY=' "$ENV_FILE" | cut -d'"' -f2)
13
+
14
+ if [[ -z "$KEY" ]]; then
15
+ echo "Error: RUBYGEMS_TOTP_KEY not found in .env" >&2
16
+ exit 1
17
+ fi
18
+
19
+ OTP=$(echo "$KEY" | otp)
20
+ gem push "$GEM_FILE" --otp "$OTP"
@@ -124,8 +124,9 @@ module Harnex
124
124
  end
125
125
 
126
126
  def normalized_screen_text(screen_text)
127
- text = screen_text.to_s.encode(Encoding::UTF_8, invalid: :replace, undef: :replace, replace: "")
127
+ text = screen_text.to_s.dup.force_encoding(Encoding::UTF_8).scrub("")
128
128
  text = text.gsub(/\e\][^\a]*?(?:\a|\e\\)/, "")
129
+ text = text.gsub(/\e\[\d*(?:;1)?H/, "\n")
129
130
  text = text.gsub(/\e(?:[@-Z\\-_]|\[[0-?]*[ -\/]*[@-~])/, "")
130
131
  text.gsub(/\r\n?/, "\n")
131
132
  end
@@ -340,6 +340,7 @@ module Harnex
340
340
  def tmux_name_arg?(argv, index, cli_name)
341
341
  value = argv[index + 1]
342
342
  return false if value.nil? || value == "--" || wrapper_option_token?(value)
343
+ return false if value.start_with?("--")
343
344
  return true if cli_name
344
345
 
345
346
  cli_candidate_after?(argv, index + 2)
@@ -1,4 +1,4 @@
1
1
  module Harnex
2
- VERSION = "0.3.1"
3
- RELEASE_DATE = "2026-04-19"
2
+ VERSION = "0.3.3"
3
+ RELEASE_DATE = "2026-04-23"
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: harnex
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jikku Jose
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-04-19 00:00:00.000000000 Z
11
+ date: 2026-04-23 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A local PTY harness that wraps terminal AI agents (Claude, Codex) and
14
14
  adds a control plane for discovery, messaging, and coordination.
@@ -23,6 +23,7 @@ files:
23
23
  - LICENSE
24
24
  - README.md
25
25
  - TECHNICAL.md
26
+ - bin/gem-push
26
27
  - bin/harnex
27
28
  - lib/harnex.rb
28
29
  - lib/harnex/adapters.rb