<feed xmlns='http://www.w3.org/2005/Atom'>
<title>hakurei/internal/app/errors.go, branch develop</title>
<subtitle>low-level userspace tooling for Rosa OS</subtitle>
<id>http://src.rosa.moe/hakurei/atom/internal/app/errors.go?h=develop</id>
<link rel='self' href='http://src.rosa.moe/hakurei/atom/internal/app/errors.go?h=develop'/>
<link rel='alternate' type='text/html' href='http://src.rosa.moe/hakurei/'/>
<updated>2025-09-24T04:37:38Z</updated>
<entry>
<title>internal/app: do not return from shim start</title>
<updated>2025-09-24T04:37:38Z</updated>
<author>
<name>Ophestra</name>
<email>cat@gensokyo.uk</email>
</author>
<published>2025-09-24T04:26:30Z</published>
<link rel='alternate' type='text/html' href='http://src.rosa.moe/hakurei/commit/?id=b99c63337df4068b36d7d8de2ae79fd274172977'/>
<id>urn:sha1:b99c63337df4068b36d7d8de2ae79fd274172977</id>
<content type='text'>
The whole RunState ugliness and the other horrendous error handling conditions for internal/app come from an old design proposal for maintaining all app containers under the same daemon process for a user. The proposal was ultimately rejected but the implementation remained. It is removed here to alleviate internal/app from much of its ugliness and unreadability.

Signed-off-by: Ophestra &lt;cat@gensokyo.uk&gt;
</content>
</entry>
<entry>
<title>internal/sys: separate hsu uid cache</title>
<updated>2025-09-14T17:30:47Z</updated>
<author>
<name>Ophestra</name>
<email>cat@gensokyo.uk</email>
</author>
<published>2025-09-14T17:30:47Z</published>
<link rel='alternate' type='text/html' href='http://src.rosa.moe/hakurei/commit/?id=a2a291791c6447528d3b1abc1ec57c7b213730b6'/>
<id>urn:sha1:a2a291791c6447528d3b1abc1ec57c7b213730b6</id>
<content type='text'>
This begins the effort of the removal of the sys package.

Signed-off-by: Ophestra &lt;cat@gensokyo.uk&gt;
</content>
</entry>
<entry>
<title>hst: replace internal/app error</title>
<updated>2025-09-14T16:44:43Z</updated>
<author>
<name>Ophestra</name>
<email>cat@gensokyo.uk</email>
</author>
<published>2025-09-14T16:44:43Z</published>
<link rel='alternate' type='text/html' href='http://src.rosa.moe/hakurei/commit/?id=8690419c2d577a27efe3cfcafc39c05b7646926b'/>
<id>urn:sha1:8690419c2d577a27efe3cfcafc39c05b7646926b</id>
<content type='text'>
This turns out to still be quite useful across internal/app and its relatives. Perhaps a cleaner replacement for baseError.

Signed-off-by: Ophestra &lt;cat@gensokyo.uk&gt;
</content>
</entry>
<entry>
<title>internal/hlog: remove error wrapping</title>
<updated>2025-09-11T21:52:35Z</updated>
<author>
<name>Ophestra</name>
<email>cat@gensokyo.uk</email>
</author>
<published>2025-09-11T21:46:12Z</published>
<link rel='alternate' type='text/html' href='http://src.rosa.moe/hakurei/commit/?id=f8760438446ee4210a479402d91018ad610bcf34'/>
<id>urn:sha1:f8760438446ee4210a479402d91018ad610bcf34</id>
<content type='text'>
This was a stopgap solution that lasted for way too long. This finally removes it and prepares internal/app for some major changes.

Signed-off-by: Ophestra &lt;cat@gensokyo.uk&gt;
</content>
</entry>
<entry>
<title>hst: configurable wait delay</title>
<updated>2025-07-28T18:06:49Z</updated>
<author>
<name>Ophestra</name>
<email>cat@gensokyo.uk</email>
</author>
<published>2025-07-28T18:06:49Z</published>
<link rel='alternate' type='text/html' href='http://src.rosa.moe/hakurei/commit/?id=f7bd28118c4ac34a9a444073b31ca8f2579188f3'/>
<id>urn:sha1:f7bd28118c4ac34a9a444073b31ca8f2579188f3</id>
<content type='text'>
This is useful for programs that take a long time to clean up.

Signed-off-by: Ophestra &lt;cat@gensokyo.uk&gt;
</content>
</entry>
<entry>
<title>app: rename app implementation package</title>
<updated>2025-04-12T01:54:24Z</updated>
<author>
<name>Ophestra</name>
<email>cat@gensokyo.uk</email>
</author>
<published>2025-04-12T01:54:24Z</published>
<link rel='alternate' type='text/html' href='http://src.rosa.moe/hakurei/commit/?id=0d7c1a9a4356614f035225aeb24e66421879a99b'/>
<id>urn:sha1:0d7c1a9a4356614f035225aeb24e66421879a99b</id>
<content type='text'>
Signed-off-by: Ophestra &lt;cat@gensokyo.uk&gt;
</content>
</entry>
<entry>
<title>app: improve shim process management</title>
<updated>2025-04-06T18:55:17Z</updated>
<author>
<name>Ophestra</name>
<email>cat@gensokyo.uk</email>
</author>
<published>2025-04-05T14:51:39Z</published>
<link rel='alternate' type='text/html' href='http://src.rosa.moe/hakurei/commit/?id=e9a7cd526f4e5f0a8f7b18ad3682d2e3afbcb8ba'/>
<id>urn:sha1:e9a7cd526f4e5f0a8f7b18ad3682d2e3afbcb8ba</id>
<content type='text'>
This ensures a signal gets delivered to the process instead of relying on parent death behaviour.

SIGCONT was chosen as it is the only signal an unprivileged process is allowed to send to processes with different credentials.

A custom signal handler is installed because the Go runtime does not expose signal information other than which signal was received, and shim must check pid to ensure reasonable behaviour.

Signed-off-by: Ophestra &lt;cat@gensokyo.uk&gt;
</content>
</entry>
<entry>
<title>app: handle RunState errors</title>
<updated>2025-02-26T08:36:14Z</updated>
<author>
<name>Ophestra</name>
<email>cat@gensokyo.uk</email>
</author>
<published>2025-02-26T08:36:14Z</published>
<link rel='alternate' type='text/html' href='http://src.rosa.moe/hakurei/commit/?id=840ceb615ae1fb6affcbe0a5774a5f4ca9d3c303'/>
<id>urn:sha1:840ceb615ae1fb6affcbe0a5774a5f4ca9d3c303</id>
<content type='text'>
Signed-off-by: Ophestra &lt;cat@gensokyo.uk&gt;
</content>
</entry>
<entry>
<title>app: define errors in a separate file</title>
<updated>2025-02-26T08:12:02Z</updated>
<author>
<name>Ophestra</name>
<email>cat@gensokyo.uk</email>
</author>
<published>2025-02-26T08:12:02Z</published>
<link rel='alternate' type='text/html' href='http://src.rosa.moe/hakurei/commit/?id=d050b3de259c6ab1ebbee75eff1940dbbc84ced9'/>
<id>urn:sha1:d050b3de259c6ab1ebbee75eff1940dbbc84ced9</id>
<content type='text'>
Signed-off-by: Ophestra &lt;cat@gensokyo.uk&gt;
</content>
</entry>
</feed>
