Skip to content

feat: Year 0 PACK-00–03 Grok behavioral port foundation#102

Merged
Patel230 merged 10 commits into
mainfrom
feat/y0-pack00-adr-inventory
Jul 16, 2026
Merged

feat: Year 0 PACK-00–03 Grok behavioral port foundation#102
Patel230 merged 10 commits into
mainfrom
feat/y0-pack00-adr-inventory

Conversation

@Patel230

Copy link
Copy Markdown
Contributor

Summary

Year 0 Grok→Hawk behavioral port foundation (see ADR-0003 and docs/plans/YEAR-0-ACTIVE.md).

PACK-00

  • ADR-0003: keep Go multi-repo; port behavior not Rust crates
  • Year 0 tracker, call-site inventory, HAWK_Y0_* feature flags

PACK-01 / PACK-02

  • Typed Agent / MultiAgent spawn via hawk-core-contracts/agent (SpawnRequest/SpawnResult)
  • Stops hardcoding explore-only subagents; supports explore / plan / general-purpose
  • Explore/plan read-only bash allowlist (ExploreBashAllowed)
  • internal/taskruntime unified agent background registry (+ Kill/Wait)
  • Worktree isolation (isolation=worktree.hawk/worktrees/…)
  • BackgroundManager actually wired into tool context

PACK-03

  • Folder trust store + hawk trust add|remove|list|check
  • sandbox.toml load/merge (project additive-only) + deny globs
  • Project .hawk/plugins / hooks gated when HAWK_Y0_FOLDER_TRUST is on (default true)

Dependency

  • Requires hawk-core-contracts#10 (agent package / v0.1.6)
  • Submodule external/hawk-core-contracts points at that branch until merge+tag

Test plan

  • go test ./internal/tool/ ./internal/taskruntime/ ./internal/gitworktree/ ./internal/trust/ ./internal/sandbox/ ./internal/flags/ ./internal/engine/ ./internal/plugin/ ./cmd/
  • go build ./cmd/hawk
  • CI green
  • Merge contracts#10 first (or keep submodule pin)

Patel230 added 10 commits July 16, 2026 14:10
Implement the Year 0 Grok→Hawk control-plane foundation:

PACK-00: ADR-0003, YEAR-0-ACTIVE tracker, call-site inventory, feature flags.
PACK-01/02: typed Agent spawn via hawk-core-contracts/agent, explore/plan/
general-purpose wiring, explore bash hard allowlist, taskruntime registry,
worktree isolation, BackgroundManager wired into tool context.
PACK-03: folder trust store + `hawk trust` CLI, sandbox.toml load/merge/
deny globs, project .hawk/plugins and hooks gated on trust.

Depends on hawk-core-contracts#10 (v0.1.6 agent package); submodule pointer
updated to feat/agent-spawn-contracts.
Wire decision hooks into PermissionEngine.CheckTool so PreToolUse can
deny tool execution before autonomy short-circuits (including YOLO).

Also: vendor event aliases (PreToolUse ↔ pre_tool), HTTP decision hooks,
hook directory discovery, HAWK_PLUGIN_ROOT/DATA env for plugin hooks and
daemons, acceptEdits/dontAsk autonomy aliases, and subagent start/stop
lifecycle hook events.
…s.go

The PACK-04 commit accidentally overwrote the lifecycle EventBus module in
events.go. Restore it and keep vendor CanonicalEvent helpers in aliases.go.
- Manifest components field + DiscoverComponents (tools/hooks/skills/mcp)
- Discovery scopes: managed > user > project (trust-gated project)
- Marketplace client: multi-source indexes, install by name, add sources
- CLI: hawk plugin marketplace list|install|add|sources, plugin inspect
- Multi-harness skill dirs (claude/codex/cursor/agents) trust-gated
- plugin create scaffolds multi-component layout
- HAWK_Y0_MARKETPLACE defaults on
- PACK-06: Monitor/Wait/Kill tools; unified taskruntime shell bridge
- PACK-07: Structured AskUser with options, interjection support
- PACK-08: Announcements, prompt queue, /btw interjection
- Docs: user-guide 01–24 completed
- Theme: auto follows system appearance, live preview in picker
- Commands: /compact-mode, /scroll-speed, /scroll-invert, /scroll-mode,
  /terminal-setup, /pager-config, /announcements, /prompt-queue
- Settings: scroll, compact, auto-dark/light, paginator configs
…ler, Brotli npm, deny-glob parity (W1C/W2/W3)

- install.sh: versioned binary at ~/.hawk/bin/hawk-<v> + tmp-then-rename symlink
  so a running hawk is never disrupted (macOS codesig SIGKILL rationale);
  HAWK_HOME/--prefix overrides; Windows cp shim. Download/checksum unchanged.
- bin/buf: dotslash-style hermetic buf launcher (SHA-pinned, cache, overridable),
  checksum placeholders to fill before first use.
- internal/crash: panic/signal crash handler (state-dir reports, capability-gated
  runtime/debug.SetCrashOutput, dump capture), 3 tests.
- npm/: Brotli multi-platform packaging (6 sub-packages + meta @graycodeai/hawk),
  assemble script + postinstall modeled on grok.
- internal/sandbox/deny_glob_parity_test.go: deny-glob Linux<->macOS parity test
  (ported from grok deny/glob.rs invariant), 8 tests.
- .gitignore: track bin/buf, keep ignoring build artifacts in bin/.
- crash_runtime.go: remove the blank line gofumpt flags between the stdlib
  and third-party import groups (gofumpt -w compliance).
- scripts/check-ecosystem-boundaries.sh: restore +x (lost in a previous
  checkout; caused "permission denied" from the "make boundaries" target
  and CI boundary-guard job).
Checksums verified against the published v1.50.0 release tarballs
(Linux-{x86_64,aarch64}, Darwin-{x86_64,arm64}). Also fixes the asset-name
construction: buf publishes capitalized OS names (Darwin-/Linux-), and
uname -m returns arm64 on macOS vs aarch64 on Linux — the previous
darwin/arm64|aarch64 alternation never matched darwin/aarch64. Map each
real (os,arch) pair explicitly and error on unsupported platforms.
@Patel230
Patel230 merged commit fd72ae2 into main Jul 16, 2026
6 of 10 checks passed
@Patel230
Patel230 deleted the feat/y0-pack00-adr-inventory branch July 16, 2026 17:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant