Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
152 changes: 121 additions & 31 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -1,48 +1,138 @@
# Code of Conduct
# Contributor Covenant Code of Conduct

## The standard
## Our Pledge

Be decent. Assume the person on the other side is acting in good faith, is
working with less context than you have, and is worth the extra sentence it
takes to explain rather than dismiss.
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, caste, color, religion, or sexual
identity and orientation.

Concretely, in this project's issues, pull requests and discussions:
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.

- Critique the work, never the person. "This drops the consent check" is
useful. "This is careless" is not, and says less.
- Explain the *why*. A review that says only "wrong" costs the author a day and
teaches them nothing.
- Take disagreement to evidence. Most arguments here are settleable by a test,
a spec, or a measurement — reach for one before reaching for volume.
- Newcomers get patience. Somebody's first pull request is the cheapest moment
to make this a project people want to return to.
## Our Standards

## Not acceptable
Examples of behavior that contributes to a positive environment for our
community include:

Harassment, personal attacks, discriminatory or demeaning remarks, sustained
disruption, publishing anyone's private information, or unwelcome attention of a
sexual nature. Also: pressuring a contributor to bypass a security or consent
rule, which is a safety issue here rather than merely a rude one.
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the overall
community

Examples of unacceptable behavior include:

* The use of sexualized language or imagery, and sexual attention or advances of
any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email address,
without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting

## Enforcement Responsibilities

Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.

Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.

## Scope

Project spaces — repositories, issues, pull requests, discussions — and any
place someone is representing the project in public.
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.

## Enforcement

Report to **conduct@flashy.network**. Reports go to a human, are held in
confidence, and are acknowledged within 72 hours.
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
michael@flashygroup.com.
All complaints will be reviewed and investigated promptly and fairly.

All community leaders are obligated to respect the privacy and security of the
reporter of any incident.

## Enforcement Guidelines

Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:

### 1. Correction

**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.

**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.

### 2. Warning

Responses run from a private word, through a warning, to a temporary or
permanent ban. What we will not do is quietly ignore a report because the person
reported is a productive contributor — that trade is how a project ends up with
a reputation nobody will say out loud.
**Community Impact**: A violation through a single incident or series of
actions.

If your report concerns the person who reads that inbox, send it to
**security@flashy.network** instead and say so.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or permanent
ban.

### 3. Temporary Ban

**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.

**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.

### 4. Permanent Ban

**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.

**Consequence**: A permanent ban from any sort of public interaction within the
community.

## Attribution

Adapted from the [Contributor Covenant](https://www.contributor-covenant.org),
version 2.1.
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.1, available at
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].

Community Impact Guidelines were inspired by
[Mozilla's code of conduct enforcement ladder][Mozilla CoC].

For answers to common questions about this code of conduct, see the FAQ at
[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
[https://www.contributor-covenant.org/translations][translations].

[homepage]: https://www.contributor-covenant.org
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
[Mozilla CoC]: https://github.com/mozilla/diversity
[FAQ]: https://www.contributor-covenant.org/faq
[translations]: https://www.contributor-covenant.org/translations

---

This file is emitted by `tools/estate-hygiene-files.mjs` in
[AgenteLabs/flashyos](https://github.com/AgenteLabs/flashyos/blob/main/tools/estate-hygiene-files.mjs) for AgenteLabs/wdk-staking-kit; `--check` fails
when it drifts. Regenerate it; never edit it here.
59 changes: 55 additions & 4 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,60 @@
<!-- estate-hygiene:begin — emitted by tools/estate-hygiene-files.mjs in AgenteLabs/flashyos; regenerate, never edit -->
# Security

## Reporting a vulnerability

Report it privately, never in a public issue, pull request or chat channel.
Two routes, and both reach the same people:

- **Email michael@flashygroup.com** — the estate's one disclosure address, the same one
published at https://flashynetwork.com/security/
and in https://flashynetwork.com/.well-known/security.txt.
One route across every repository is deliberate: a researcher who finds two
addresses and picks the worse one has been failed by us, not by their choice.
- **GitHub → Security → Report a vulnerability** on this repository, which
opens a private advisory only the maintainers can read. If that button is
missing, private vulnerability reporting has not been enabled on this
repository yet; use the email route and say so in the report.

Include what you found, how to reproduce it and what you believe the impact
is. Do not include real credentials, private keys or production data: nothing
here needs them to reproduce a finding.

## What to expect

| | |
|---|---|
| Acknowledgement | within 72 hours |
| An assessment, and what we are doing | agreed with you, in writing |
| Publication | a window agreed with you, never imposed |

If we miss the acknowledgement window, say so publicly. A window nobody is
held to is worse than none, because it asks a reporter to wait on a promise
that was never load-bearing.

## Supported versions

The default branch only. There is no maintained release line behind it: a
finding against the default branch is in scope, a finding against an older
tag or a fork is a reason to update.

## A committed credential is rotated, never removed

If a report is that a secret reached this repository, the fix is rotation at
the issuer. Deleting the file, rewriting history or force-pushing is not a
fix: the value is burned the moment it lands and stays burned, because
history, forks, caches and mirrors keep it. Say which secret, and we rotate
it before anything else.

## About this document

The sections above are emitted by [`tools/estate-hygiene-files.mjs`](https://github.com/AgenteLabs/flashyos/blob/main/tools/estate-hygiene-files.mjs)
in AgenteLabs/flashyos from one template the whole estate shares, and
`--check` fails when they drift.
Regenerate them; never edit them here. Anything below the marker is this
repository's own and is kept as written.
<!-- estate-hygiene:end — everything below is this repository’s own -->

## Threat model

This package holds no key, signs nothing, and makes no network call. It is an accounting layer: given a `BalanceProvider` you supply, it decides whether a lock is permitted and computes yield on close. Its security surface is:
Expand All @@ -15,7 +70,3 @@ This package does not authenticate callers — it assumes whatever calls `lock()
- **`InMemoryBalanceProvider` is not production custody.** It is a reference implementation for tests and demos, explicitly documented as such. A production `BalanceProvider` needs its own security review, matched to whatever it actually holds — this package cannot review a balance store it doesn't implement.
- **No on-chain settlement.** This package makes no claim about, and provides no protection for, an on-chain contract you might build later against the same published terms.
- **Time comes from an injectable `now()`, not from a trusted clock source.** `StillLockedError` is checked against whatever `now()` your `StakingService` instance was constructed with. If your integration lets an untrusted party influence what your server considers "now," that is a bug in your integration, not in this package — supply a real, trusted clock.

## Reporting a vulnerability

Please report suspected vulnerabilities privately rather than as a public GitHub issue: email **security@flashy.network** with a description and, if possible, a minimal reproduction (an envelope-equivalent input and the yield or verdict you got versus expected). We aim to acknowledge within 3 business days.
Loading