Import actions from hasna/actions (history preserved) - #10
Merged
Conversation
…-479e-909e-d126df1d0e63-cd6b7973 Define ActionManifest package contract
…eployed code Reconciles main (0.1.0, PR#2 alternate contract design) to the published @hasna/actions@0.1.5 line (feature/first-action-layer, verified byte-identical to the npm tarball). Conflicts resolved in favor of the published/deployed code. Kept additive docs (CONTRIBUTING.md, SECURITY.md). Removed the incompatible alternate contract design (manifest.ts and its tests, mcp/capabilities.ts) from the tree; those commits remain in history via this no-ff merge (no commits lost).
Reconciliation release. main now equals the deployed @hasna/actions@0.1.5 code plus main-only docs; version bumped 0.1.5 -> 0.1.6 (package.json + src/version.ts kept in sync) so the next publish sits above npm latest. Adds CHANGELOG.md.
Reconcile main to published npm line (0.1.5 → 0.1.6)
Ensure this repo LICENSE file is the COMPLETE canonical Apache License 2.0 text, byte-compatible with https://www.apache.org/licenses/LICENSE-2.0.txt (~202 lines, sections 1-9 plus APPENDIX, canonical line wrapping). Some repos here ship only the ~17-line Apache boilerplate NOTICE (a real licensing gap — Apache-2.0 section 4(a) requires shipping a copy of the License itself); others ship the full text REFLOWED so GitHub cannot detect it. Both are fixed by writing the canonical text. COPYRIGHT: if the CURRENT LICENSE has a specific copyright line (e.g. "Copyright 2026 Hasna, Inc."), carry it verbatim into the APPENDIX placeholders. If it has none, leave the canonical placeholders exactly as apache.org ships them — do NOT invent a year or entity. Change no other file, except a README line explicitly claiming a different license (correct to Apache-2.0), and package.json "license" if relicensing from MIT. VERIFY: LICENSE contains "TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION" and "APPENDIX: How to apply the Apache License to your work", exceeds 150 lines. X-Factory-Run: run_e6159de17df1
…ck (#9) Co-authored-by: Andrei Hasna <andrei@hasna.com>
…in (#10) Co-authored-by: Andrei <andrei@hasna.com>
Agent: agent-ea
Agent: agent-ea
Agent: agent-ea
This was referenced Aug 15, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Import actions from hasna/actions (history-preserving, merge-commit)
Task: ee9fbb4d (wave 1 batch B). Mechanism:
import-mechanics-codex.md(approved; reviewers A+B GO). Import via disposable mirror →git-filter-repo --to-subdirectory-filter apps/actions --preserve-commit-hashes --preserve-commit-encoding→ same-tree history capsule → one merge-commit PR (merge-commit strategy required — squash/rebase breaks imported-history reachability). No publishes, no repo-settings changes, no deletions.Evidence
PR freeze (checklist 6): 0 open PRs on hasna/actions at import time.
Ref inventory (checklist 1): heads=5, tags=1 (annotated).
refs/pull/*present in the mirror; pull-only commits dropped per mechanism P3 (accepted, recorded). Peel skipped list: none (all 6 refs resolved viarev-parse ^{commit}).Capsule: f38c58a, parents=5 (rewritten main + 4 branch/tag tips; annotated tag v0.1.5 peeled to the feature/first-action-layer tip — deduped). PARENT_SET_EQUAL GAPS=0 (checklist 3).
Tree/blob gate (checklist 4): rewritten main tree 333d640c == mono subtree tree (git diff --exit-code rc=0). Blob-set: 46/46 identical. 0 gitlink (160000) entries (negative submodule control). Provenance: rewritten main d159e67 is an ancestor of the import head (DAG_REACHABLE); 38 rewritten commits reachable;
git fsck --connectivity-onlyrc=0 (dangling trees only).In-mono absorption gate (checklist 2): bun install rc=0 ·
bun run checkrc=0 (secrets scan 0 findings / 6,012 added lines; 68+35 tests pass) · turbobuild --affectedrc=0 ·test --affectedrc=0 ·lint --affectedrc=0.Absorption fixes (in this PR, smallest per P1b): none required for build/test/lint. Only hygiene: removed a trailing blank line at EOF from 8 files (
.gitignore,examples/dispatch-workflow.ts,examples/local-shell.manifest.json,src/executors/local-shell.test.ts,src/executors/typescript.ts,src/sdk/index.ts,tsconfig.build.json,tsconfig.json) to satisfygit diff --cached --check(pre-existing blank-line-at-EOF from the old repo; content otherwise untouched). Rootbun.lockupdated bybun install(member registration).Hygiene (checklist 5): no
.gitattributesLFS rules, no.gitmodules, staged secrets scan 0 findings,git diff --cached --checkclean.Tag→commit manifest (checklist 8):
/tmp/opencode/wave1b/actions/tag-commit-manifest.md(1 annotated tag → peeled+deduped; capsule parents; GAPS=0).Landing requirement
Merge with GitHub's merge-commit strategy only (mechanism doc; squash or rebase breaks reachability of the imported history).
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.