Commit Graph

15577 Commits

Author SHA1 Message Date
Mitchell Hashimoto
b0132dd617 add vouch manage by issue workflow 2026-02-15 07:06:31 -08:00
Mitchell Hashimoto
71d54c8699 fix vouch-request discussion template 2026-02-15 07:03:46 -08:00
Mitchell Hashimoto
ea2b674a00 Introduce the Vouch/Denouncement Contribution Model (#10559)
This moves Ghostty to a vouch-based contribution system. The high-level
idea is that only vouched users can participate in contributing to
Ghostty. Users are vouched by maintainers commenting "lgtm" on an issue
they opened.

The system also supports explicit **denouncement**: bad actors can be
added to the denounced list which blocks them from contributing
entirely. We maintain this as a public record so other projects can
adopt our prior knowledge about bad actors if they choose. In this PR,
only maintainers can denounce by responding `denounce`, `denounce [user]
[reason]` to any issue or PR.

This also updates our contribution guidelines and templates to fit this
new model.

This system is inspired very heavily by
[Pi](https://github.com/badlogic/pi-mono). The original commits were
based directly on their work.

> [!IMPORTANT]
> 
> This is experimental. We're going to continue testing and refining
this. It isn't a perfect system [yet]. This PR just adds the basics so
we can start proving it out.

## Why?

Open source has always worked on a system of _trust and verify_.

Historically, the effort required to understand a codebase, implement a
change, and submit that change for review was high enough that it
naturally filtered out many low quality contributions from unqualified
people. For over 20 years of my life, this was enough for my projects as
well as enough for most others.

Unfortunately, the landscape has changed particularly with the advent of
AI tools that allow people to trivially create plausible-looking but
extremely low-quality contributions with little to no true
understanding. Contributors can no longer be trusted based on the
minimal barrier to entry to simply submit a change.

But, open source still works on trust! And every project has a definite
group of trusted individuals (maintainers) and a larger group of
probably trusted individuals (active members of the community in any
form). So, let's move to an explicit trust model where trusted
individuals can vouch for others, and those vouched individuals can then
contribute.

## Web of Trust

The `VOUCHED` file is purposely a basic, single, flat-file system that
is easy to manipulate with any standard POSIX-tooling or mainstream
languages without any external libraries.

I hope that eventually projects can form a web of trust and share and
ingest VOUCH files from other projects they trust in order to get a
better default trust model across projects in the age of relentless AI
attack.

The file also specifically is relaxed on the exact policy for being
vouched or denounced. If/when another project decides to trust an
upstream vouch file, they're expected to do the diligence to understand
if they also trust the upstream projects _reasoning_ for
vouching/denouncing. For example, if someone decides to create a vouch
file promoting their friends or denouncing their own personal shitlist,
that's fine, but downstreams can be aware of that and not trust it.

## A Generic System

The vouch system is implemented as a standalone project currently in
`.github/vouch`. **It is forge-agnostic** but includes GitHub
integration to start. I plan on expanding this. My goal is that if this
works for us, other projects can quickly adopt it. I don't want to
extract this out to its own repo or generalize it more until we prove
out the edge cases with our usage. But, I will welcome contributions
here to improve this system.

### Usage

Local files only:

- `vouch.nu check <user>` - check if a user is vouched/denounced
- `vouch.nu add <user>` - add a user to the vouched list  
- `vouch.nu denounce <user>` - denounce a user

GitHub integration:

- `vouch.nu gh-check-pr <pr>` - check PR author status, optionally
auto-close
- `vouch.nu gh-manage-by-issue <issue> <comment>` - vouch/denounce via
issue comments
2026-02-15 07:01:19 -08:00
Mitchell Hashimoto
eb68d98bad update vouch 2026-02-15 06:57:55 -08:00
Mitchell Hashimoto
2aa773a23a fix old lgtm 2026-02-15 06:53:31 -08:00
Mitchell Hashimoto
7f6c2b57b1 remove the issue template 2026-02-15 06:53:31 -08:00
Mitchell Hashimoto
c2cb050713 fix pins 2026-02-15 06:53:31 -08:00
Mitchell Hashimoto
bb679acbf7 add discussion template 2026-02-15 06:53:30 -08:00
Mitchell Hashimoto
ad6921f276 Use mitchellh/vouch 2026-02-15 06:53:30 -08:00
Mitchell Hashimoto
5e22d4b01d remove built-in vouch, prep to replace with upstream 2026-02-15 06:53:30 -08:00
Mitchell Hashimoto
d3b8e91ed9 add td extension to the files 2026-02-15 06:53:30 -08:00
Mitchell Hashimoto
089f7f2128 vouch: clean up platform stuff 2026-02-15 06:53:30 -08:00
Mitchell Hashimoto
21be48ae4d vouch: add/denounce output to stdout by default, add -w flag 2026-02-15 06:53:30 -08:00
Mitchell Hashimoto
83a4200fcb vouch: add platform prefix support 2026-02-15 06:53:30 -08:00
Mitchell Hashimoto
c40641a9bc fix typos 2026-02-15 06:53:30 -08:00
Mitchell Hashimoto
f1145bbb4b remove one screen vagueness 2026-02-15 06:53:30 -08:00
Mitchell Hashimoto
3e5dbb2a34 pinact 2026-02-15 06:53:30 -08:00
Mitchell Hashimoto
d09a314879 prettier 2026-02-15 06:53:30 -08:00
Mitchell Hashimoto
309a1c4f30 vouch README 2026-02-15 06:53:30 -08:00
Mitchell Hashimoto
00c33eaf72 update our guidelines, templates 2026-02-15 06:53:30 -08:00
Mitchell Hashimoto
dd77c2e797 update our GitHub actions 2026-02-15 06:53:29 -08:00
Mitchell Hashimoto
4af4625249 vouch can manage denouncement 2026-02-15 06:53:29 -08:00
Mitchell Hashimoto
46423a4255 add --require-vouch 2026-02-15 06:53:29 -08:00
Mitchell Hashimoto
b202c19252 clean up 2026-02-15 06:53:29 -08:00
Mitchell Hashimoto
cd090afba7 rename some functions 2026-02-15 06:53:29 -08:00
Mitchell Hashimoto
a4db748980 vouch denounce 2026-02-15 06:53:29 -08:00
Mitchell Hashimoto
2a3483413d vouch.nu reorder 2026-02-15 06:53:29 -08:00
Mitchell Hashimoto
2eec9cc761 add vouched check 2026-02-15 06:53:29 -08:00
Mitchell Hashimoto
b5463f3227 add AGENTS.md 2026-02-15 06:53:29 -08:00
Mitchell Hashimoto
a4d0d5c182 moving stuff around 2026-02-15 06:53:29 -08:00
Mitchell Hashimoto
f6b67aa25a merge the vouch scripts 2026-02-15 06:53:29 -08:00
Mitchell Hashimoto
c3573fc35b rename to vouch 2026-02-15 06:53:29 -08:00
Mitchell Hashimoto
39e610d0ee approved PR gate 2026-02-15 06:53:29 -08:00
Mitchell Hashimoto
dce6552801 approve-contributor workflow 2026-02-15 06:53:26 -08:00
Mitchell Hashimoto
045c540f05 bash: preserve existing PS0 value (#10688)
We were previously overwriting PS0 on every PROMPT_COMMAND. We now
append to PS0, but only if it doesn't already contain our hook.

This is also more consistent with the bash-preexec behavior we maintain
for older bash versions.
2026-02-15 06:52:42 -08:00
David Matos
be5a1c4e05 Update po for new localized string 2026-02-15 11:02:49 +01:00
David Matos
4525dd57a0 Merge branch 'main' into localize-nautilus-script 2026-02-15 11:01:11 +01:00
David Matos
db02dbc4bb Update po/* from main 2026-02-15 11:00:43 +01:00
Aindriú Mac Giolla Eoin
763b80c985 Updated 5 translations 2026-02-14 17:58:56 +00:00
Leah Amelia Chen
61e347a2c2 core/gtk: add language config entry to override GUI localization (#10428)
Fixes #10276

<img width="853" height="637" alt="Screenshot From 2026-01-23 16-45-11"
src="https://github.com/user-attachments/assets/aff9d2f8-eb3e-411e-bd3d-ebd32e5c7973"
/>
2026-02-15 00:24:30 +08:00
Ben Kircher
7d87a58a73 url: fix trailing colon in path matches
Paths like `./.config/ghostty:` and `./Downloads:` were incorrectly
including the trailing colon. Add a `no_trailing_colon` lookbehind to
all path branches and prevent space segments from starting after a colon
so that `": text"` is not consumed as part of the path.
2026-02-14 09:42:07 +01:00
Giacomo Bettini
27180d560c i18n: add 1.3 it_IT translations 2026-02-14 01:26:26 +01:00
Hanna
faa0f99d36 i18n: add missing nb_NO translations (#10702) 2026-02-13 19:48:08 +00:00
Priyanshu
d2841220a8 move copyTitleToClipboard logic into Surface 2026-02-13 21:30:13 +05:30
Kat
03c3d0b113 i18n: update de_DE translations (#10698)
This PR adds the missing translations for Ghostty 1.3 and aligns the
existing translation of "Terminal Title" with similar instances, such as
"Terminalinspektor" and "Terminalsitzungen".

Related to: #10632
2026-02-13 15:49:26 +00:00
Klaus Hipp
1ce7531b6c i18n: update de_DE translations 2026-02-13 08:06:43 +01:00
Kat
c8461749eb i18n/zh_CN: update for 1.3 (#10640)
Part of #10632

Given I'm the only member in the zh_CN team, y'all just have to trust me
on this one... Wouldn't mind the zh_TW folks taking a look of course
2026-02-13 06:59:12 +00:00
Kat
2fdb5c10d4 i18n: update zh_TW translation (#10645) 2026-02-13 06:49:28 +00:00
Kat
8714d7202a Update Hebrew translations and copyright year for 1.3. (#10676)
Added Hebrew translations for various strings for 1.3, as requested in
https://github.com/ghostty-org/ghostty/issues/10632.
Updated copyright year to 2026.
2026-02-13 06:35:43 +00:00
Priyanshu
de49b7f27b rename copy_title action to copy_title_to_clipboard 2026-02-13 09:59:02 +05:30